Web-сервисы: Сервис поиска — различия между версиями
[досмотренная версия] | [досмотренная версия] |
Строка 90: | Строка 90: | ||
</Megatec.Web.Services> | </Megatec.Web.Services> | ||
==Подготовка данных== | ==Подготовка данных== | ||
+ | ===Описание класса SearchFilter=== | ||
+ | <nowiki>/// <summary> | ||
+ | /// Поисковый фильтр | ||
+ | /// </summary> | ||
+ | public class SearchFilter | ||
+ | { | ||
+ | public enum SearchSource : short | ||
+ | { | ||
+ | PriceTables = 0, | ||
+ | BindingTables = 1, | ||
+ | } | ||
+ | public enum KindOfTours : int | ||
+ | { | ||
+ | All = 0, | ||
+ | PacketTours = 1, | ||
+ | LandTours = 2 | ||
+ | } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Вид тура | ||
+ | /// </summary> | ||
+ | public KindOfTours KindOfToursMask | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return this.kindOfTours; | ||
+ | } | ||
+ | set | ||
+ | { | ||
+ | this.kindOfTours = value; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Маска аттрибутов тура | ||
+ | /// </summary> | ||
+ | public int TurListAttributeMask | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return this.turlistAttributeMask; | ||
+ | } | ||
+ | set | ||
+ | { | ||
+ | this.turlistAttributeMask = value; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Партнер по отелю | ||
+ | /// </summary> | ||
+ | public int HotelPartnerKey | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return this.hotelPartnerKey; | ||
+ | } | ||
+ | set | ||
+ | { | ||
+ | this.hotelPartnerKey = value; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | [XmlAttribute] | ||
+ | public int MaxChildAge | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return this.maxChildAge; | ||
+ | } | ||
+ | set | ||
+ | { | ||
+ | this.maxChildAge = value; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Интервал дат | ||
+ | /// </summary> | ||
+ | public DateInterval TurDateRange | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return this._turDateRange; | ||
+ | } | ||
+ | set | ||
+ | { | ||
+ | this._turDateRange = value; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Интервал продолжительностей | ||
+ | /// </summary> | ||
+ | public DurationInterval DurationRange | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return this._durationRange; | ||
+ | } | ||
+ | set | ||
+ | { | ||
+ | this._durationRange = value; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Ключ страны | ||
+ | /// </summary> | ||
+ | [XmlAttribute] | ||
+ | public int CountryKey | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | if (this._countryKeys.Count == 0) | ||
+ | return -1; | ||
+ | |||
+ | return (int)this._countryKeys[0]; | ||
+ | } | ||
+ | set | ||
+ | { | ||
+ | this._countryKeys.Clear(); | ||
+ | if (value > 0) | ||
+ | this._countryKeys.Add(value); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Массив ключей стран | ||
+ | /// </summary> | ||
+ | public ArrayList CountryKeys | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return this._countryKeys; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | |||
+ | /// <summary> | ||
+ | /// Поставлен ли флажок все авиакомпании | ||
+ | /// </summary> | ||
+ | [XmlAttribute] | ||
+ | public bool IsAllAirlines | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return this._isAllAirlines; | ||
+ | } | ||
+ | set | ||
+ | { | ||
+ | this._isAllAirlines = value; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Поставлен ли флажок все страны | ||
+ | /// </summary> | ||
+ | [XmlAttribute] | ||
+ | public bool IsAllCountries | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return this._isAllCountries; | ||
+ | } | ||
+ | set | ||
+ | { | ||
+ | this._isAllCountries = value; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Поиск на все продолжительности | ||
+ | /// </summary> | ||
+ | [XmlAttribute] | ||
+ | public bool IsAllDurations | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return this._isAllDurations; | ||
+ | } | ||
+ | set | ||
+ | { | ||
+ | this._isAllDurations = value; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Массив продолжительностей | ||
+ | /// </summary> | ||
+ | public ArrayList Durations | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return durations; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | [XmlAttribute] | ||
+ | public bool ExcludeNoPlaces | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return excludeNoPlaces; | ||
+ | } | ||
+ | set | ||
+ | { | ||
+ | excludeNoPlaces = value; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Массив продолжительностей в днях | ||
+ | /// </summary> | ||
+ | public ArrayList Days | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return days; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Массив продолжительностей в ночах | ||
+ | /// </summary> | ||
+ | public ArrayList Nights | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return nights; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Проверять ли квоты | ||
+ | /// </summary> | ||
+ | [XmlAttribute] | ||
+ | public bool CheckQuotes | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return checkQuotes; | ||
+ | } | ||
+ | set | ||
+ | { | ||
+ | checkQuotes = value; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Ключ города отправления | ||
+ | /// </summary> | ||
+ | [XmlAttribute] | ||
+ | public int DepartFromKey | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | if (this._departFromKeys.Count == 0) | ||
+ | return -1; | ||
+ | |||
+ | return (int)this._departFromKeys[0]; | ||
+ | } | ||
+ | set | ||
+ | { | ||
+ | this._departFromKeys.Clear(); | ||
+ | if (value >= 0) | ||
+ | this._departFromKeys.Add(value); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Ключ города прибытия | ||
+ | /// </summary> | ||
+ | [XmlAttribute] | ||
+ | public int DepartToKey | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | if (this._departToKeys.Count == 0) | ||
+ | return -1; | ||
+ | |||
+ | return (int)this._departToKeys[0]; | ||
+ | } | ||
+ | set | ||
+ | { | ||
+ | this._departToKeys.Clear(); | ||
+ | if (value > 0) | ||
+ | this._departToKeys.Add(value); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Массив ключей городов вылета | ||
+ | /// </summary> | ||
+ | public ArrayList DepartFromKeys | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return this._departFromKeys; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | |||
+ | /// <summary> | ||
+ | /// Поставлен ли флажок все города вылетов | ||
+ | /// </summary> | ||
+ | [XmlAttribute] | ||
+ | public bool IsAllDepartsFrom | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return this._isAllDepartsFrom; | ||
+ | } | ||
+ | set | ||
+ | { | ||
+ | this._isAllDepartsFrom = value; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Массив ключей городов прибытия | ||
+ | /// </summary> | ||
+ | public ArrayList DepartToKeys | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return this._departToKeys; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | |||
+ | /// <summary> | ||
+ | /// Поставлен ли флажок все города вылетов | ||
+ | /// </summary> | ||
+ | [XmlAttribute] | ||
+ | public bool IsAllDepartsTo | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return this._isAllDepartsTo; | ||
+ | } | ||
+ | set | ||
+ | { | ||
+ | this._isAllDepartsTo = value; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | |||
+ | /// <summary> | ||
+ | /// Массив ключей аэропортов вылета | ||
+ | /// </summary> | ||
+ | public ArrayList AirportFromKeys | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return this._airportFromKeys; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | |||
+ | /// <summary> | ||
+ | /// Поставлен ли флажок все города вылетов | ||
+ | /// </summary> | ||
+ | [XmlAttribute] | ||
+ | public bool IsAllAirportsFrom | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return this._isAllAirportsFrom; | ||
+ | } | ||
+ | set | ||
+ | { | ||
+ | this._isAllAirportsFrom = value; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Массив ключей аэропортов прибытия | ||
+ | /// </summary> | ||
+ | public ArrayList AirportToKeys | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return this._airportToKeys; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | |||
+ | /// <summary> | ||
+ | /// Поставлен ли флажок все города вылетов | ||
+ | /// </summary> | ||
+ | [XmlAttribute] | ||
+ | public bool IsAllAirportsTo | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return this._isAllAirportsTo; | ||
+ | } | ||
+ | set | ||
+ | { | ||
+ | this._isAllAirportsTo = value; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Ключ отеля | ||
+ | /// </summary> | ||
+ | [XmlAttribute] | ||
+ | public int HotelKey | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | if (this._hotelKeys.Count == 0) | ||
+ | return -1; | ||
+ | |||
+ | return (int)this._hotelKeys[0]; | ||
+ | } | ||
+ | set | ||
+ | { | ||
+ | this._hotelKeys.Clear(); | ||
+ | if (value > 0) | ||
+ | this._hotelKeys.Add(value); | ||
+ | } | ||
+ | } | ||
+ | /// <summary> | ||
+ | /// Ключ тура | ||
+ | /// </summary> | ||
+ | [XmlAttribute] | ||
+ | public int TourKey | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return this._tourKey; | ||
+ | } | ||
+ | set | ||
+ | { | ||
+ | this._tourKey = value; | ||
+ | } | ||
+ | } | ||
+ | /// <summary> | ||
+ | /// Ограничение цены | ||
+ | /// </summary> | ||
+ | [XmlAttribute] | ||
+ | public double PriceLimit | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return this._priceLimit; | ||
+ | } | ||
+ | set | ||
+ | { | ||
+ | this._priceLimit = value; | ||
+ | } | ||
+ | } | ||
+ | /// <summary> | ||
+ | /// Список ключей курортов | ||
+ | /// </summary> | ||
+ | public ArrayList ResortKeys | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return this._resortKeys; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Поставлен ли флажок все курорты | ||
+ | /// </summary> | ||
+ | [XmlAttribute] | ||
+ | public bool IsAllResort | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return this._isAllResort; | ||
+ | } | ||
+ | set | ||
+ | { | ||
+ | this._isAllResort = value; | ||
+ | } | ||
+ | } | ||
+ | /// <summary> | ||
+ | /// Список ключей городов | ||
+ | /// </summary> | ||
+ | public ArrayList CityKeys | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return this._cityKeys; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Установлен ли в фильтре флаг все города | ||
+ | /// </summary> | ||
+ | [XmlAttribute] | ||
+ | public bool IsAllCity | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return this._isAllCity; | ||
+ | } | ||
+ | set | ||
+ | { | ||
+ | this._isAllCity = value; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Список ключей городов | ||
+ | /// </summary> | ||
+ | public ArrayList HotelKeys | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return this._hotelKeys; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Список ключей сервисов в отеле | ||
+ | /// </summary> | ||
+ | public ArrayList HotelOptionsKeys | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return this._hotelOptionsKeys; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Установлен ли в фильтре флаг все отели | ||
+ | /// </summary> | ||
+ | [XmlAttribute] | ||
+ | public bool IsAllHotels | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return this._isAllHotels; | ||
+ | } | ||
+ | set | ||
+ | { | ||
+ | this._isAllHotels = value; | ||
+ | } | ||
+ | } | ||
+ | /// <summary> | ||
+ | /// Список ключей типов туров | ||
+ | /// </summary> | ||
+ | public ArrayList TourTypeKeys | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return this._tourTypeKeys; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Установлен ли флаг все типы тура | ||
+ | /// </summary> | ||
+ | [XmlAttribute] | ||
+ | public bool IsAllTourType | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return this._isAllTourType; | ||
+ | } | ||
+ | set | ||
+ | { | ||
+ | this._isAllTourType = value; | ||
+ | } | ||
+ | } | ||
+ | /// <summary> | ||
+ | /// Список ключей типов туров | ||
+ | /// </summary> | ||
+ | public ArrayList TourTypeDetailKeys | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return this._tourTypeDetailKeys; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Установлен ли флаг все типы тура | ||
+ | /// </summary> | ||
+ | [XmlAttribute] | ||
+ | public bool IsAllTourTypeDetails | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return this._isAllTourTypeDetails; | ||
+ | } | ||
+ | set | ||
+ | { | ||
+ | this._isAllTourTypeDetails = value; | ||
+ | } | ||
+ | } | ||
+ | /// <summary> | ||
+ | /// Список звездностей отелей | ||
+ | /// </summary> | ||
+ | public ArrayList HotelStars | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return this._hotelStars; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Поиск по всем звездностям | ||
+ | /// </summary> | ||
+ | [XmlAttribute] | ||
+ | public bool IsAllHotelStars | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return this._isAllHotelStars; | ||
+ | } | ||
+ | set | ||
+ | { | ||
+ | this._isAllHotelStars = value; | ||
+ | } | ||
+ | } | ||
+ | /// <summary> | ||
+ | /// Список ключей питаний | ||
+ | /// </summary> | ||
+ | public ArrayList PansionKeys | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return this._pansionKeys; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Поиск по всем питаниях | ||
+ | /// </summary> | ||
+ | [XmlAttribute] | ||
+ | public bool IsAllPansion | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return this._isAllPansion; | ||
+ | } | ||
+ | set | ||
+ | { | ||
+ | this._isAllPansion = value; | ||
+ | } | ||
+ | } | ||
+ | /// <summary> | ||
+ | /// Список ключей авиакомпаний | ||
+ | /// </summary> | ||
+ | public ArrayList AirlineKeys | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return this._airlineKeys; | ||
+ | } | ||
+ | } | ||
+ | /// <summary> | ||
+ | /// Список ключей типов номеров | ||
+ | /// </summary> | ||
+ | public ArrayList RoomKeys | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return this.roomKeys; | ||
+ | } | ||
+ | } | ||
+ | /// <summary> | ||
+ | /// Список ключей категорий проживания | ||
+ | /// </summary> | ||
+ | public ArrayList RoomCategoryKeys | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return this.roomCategoryKeys; | ||
+ | } | ||
+ | } | ||
+ | /// <summary> | ||
+ | /// Список ключей типов размещения | ||
+ | /// </summary> | ||
+ | public ArrayList AccomodationKeys | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return this.accomodationKeys; | ||
+ | } | ||
+ | } | ||
+ | /// <summary> | ||
+ | /// Список ключей дополнительных услуг в отеле | ||
+ | /// </summary> | ||
+ | public ArrayList AddHotelServiceKeys | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return this._addHotelServiceKeys; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Поиск по все услугам в отеле | ||
+ | /// </summary> | ||
+ | [XmlAttribute] | ||
+ | public bool IsAllAddHotelService | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return this._isAllAddHotelService; | ||
+ | } | ||
+ | set | ||
+ | { | ||
+ | this._isAllAddHotelService = value; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Искать только основные типы размещения | ||
+ | /// </summary> | ||
+ | [XmlAttribute] | ||
+ | public bool MainOnly | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return mainOnly; | ||
+ | } | ||
+ | set | ||
+ | { | ||
+ | mainOnly = value; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Искать только туры для групп агентов, в которые входит данное агентство | ||
+ | /// </summary> | ||
+ | [XmlAttribute] | ||
+ | public bool GroupOnly | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return groupOnly; | ||
+ | } | ||
+ | set | ||
+ | { | ||
+ | groupOnly = value; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Количество взрослых | ||
+ | /// </summary> | ||
+ | [XmlAttribute] | ||
+ | public int Adults | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return adults; | ||
+ | } | ||
+ | set | ||
+ | { | ||
+ | adults = value; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Количество детей | ||
+ | /// </summary> | ||
+ | [XmlAttribute] | ||
+ | public int Childs | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return childs; | ||
+ | } | ||
+ | set | ||
+ | { | ||
+ | childs = value; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Возраст первого ребенка | ||
+ | /// </summary> | ||
+ | [XmlAttribute] | ||
+ | public int FirstChildAge | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return firstChildAge; | ||
+ | } | ||
+ | set | ||
+ | { | ||
+ | firstChildAge = value; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Возраст второго ребенка | ||
+ | /// </summary> | ||
+ | [XmlAttribute] | ||
+ | public int SecondChildAge | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return secondChildAge; | ||
+ | } | ||
+ | set | ||
+ | { | ||
+ | secondChildAge = value; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Маска квот на проживание | ||
+ | /// </summary> | ||
+ | [XmlAttribute] | ||
+ | public QuotaResult.Status HotelQuotaMask | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return hotelQuotaMask; | ||
+ | } | ||
+ | set | ||
+ | { | ||
+ | hotelQuotaMask = value; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Маска квот на перелет | ||
+ | /// </summary> | ||
+ | [XmlAttribute] | ||
+ | public QuotaResult.Status AviaQuotaMask | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return aviaQuotaMask; | ||
+ | } | ||
+ | set | ||
+ | { | ||
+ | aviaQuotaMask = value; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Количество строк на странице | ||
+ | /// </summary> | ||
+ | [XmlAttribute] | ||
+ | public int PageSize | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return this.pageSize; | ||
+ | } | ||
+ | set | ||
+ | { | ||
+ | this.pageSize = value; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Ограничение цены снизу | ||
+ | /// </summary> | ||
+ | [XmlAttribute] | ||
+ | public double PriceMinimum | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return this._priceMinimum; | ||
+ | } | ||
+ | set | ||
+ | { | ||
+ | this._priceMinimum = value; | ||
+ | this.isNullPriceMinimum = false; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Ограничена ли цена снизу | ||
+ | /// </summary> | ||
+ | [XmlAttribute] | ||
+ | public bool IsNullPriceMinimum | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return this.isNullPriceMinimum; | ||
+ | } | ||
+ | set | ||
+ | { | ||
+ | this.isNullPriceMinimum = value; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Дополнительный фильтр | ||
+ | /// </summary> | ||
+ | [XmlAttribute] | ||
+ | public string AddFilter | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return addFilter; | ||
+ | } | ||
+ | set | ||
+ | { | ||
+ | addFilter = value; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | }</nowiki> | ||
+ | |||
[[Category:Мастер-Web_Дополнительные_модули]] | [[Category:Мастер-Web_Дополнительные_модули]] |
Версия 14:10, 28 октября 2011
Содержание
Введение
Данный модуль предназначен для осуществления поиска и подбора туров из внешних приложений.
Установка
Для установки Поискового сервиса нужно создать директорию WebServices в каталоге c:/inetpub/wwwroot/MasterWeb и выложить туда распакованные файлы из архива mw-megatecwebservices-2007.2.XX.XXXX.zip. В управлении IIS необходимо создать виртуальный каталог для папки WebServices.
Создание виртуального каталога
По умолчанию корневым каталогом IIS является C:/Inetpub/wwwroot. Для создания виртуального каталога для приложения находящегося в этом каталоге нужно выполнить следующие действия:
- 1. Зайти в Пуск (Start) – Настройки (Settings) – Панель управления (Control Panel)
- 2. В открывшемся окне выбрать Администрирование (Administrative Tools).
- 3. Запустить Internet Information Services (IIS) Manager.
- 4. В открывшемся дереве каталогов выбрать Web Sites – Default Web Site. В открывшемся списке найти папку, для которой нужно создать виртуальный каталог, кликнуть по ней правой кнопкой мыши и зайти в Свойства (Properties).
- 5. В открывшемся окне, в закладке Directory нужно нажать кнопку «Create», а затем кнопку «ОК».
Подключение к базе данных ПК «Мастер-Тур»
В файле web.config, расположенном в папке WebServices пропишите необходимые параметры подключения (курсивом выделены значения, которые необходимо ввести). Строка подключения к базе данных ПК «Мастер-Тур»:
- 1. <add key = "connectionString" value = "Data Source=ip-адрес сервера базы данных ПК Мастер-тур;Initial Catalog=название базы данных ПК Мастер-тур;User ID=логин пользователя ПК Мастер-тур;Password=пароль пользователя ПК Мастер-тур"/>
- 2. <add key = "connectionStringShort" value = "Data Source= ip-адрес сервера базы данных ПК Мастер-Тур;Initial Catalog= название базы данных ПК Мастер-Тур;"/>
Настройка
После установки «Поисковый сервис» доступен по адресу http: //ip- адрес сервера Мастер-Веб/WebServices/Search.asmx.
Настройки web.config приложения ПК Мастер-Web
Дополнительные настройки, задаваемые в файле web.config, находящемся в папке MasterWeb позволяют задать дополнительные условия для отображения и проверки данных.
№ |
Описание |
Значение |
Настройка |
1 |
Путь к приложению WebServices |
Ссылка на приложение WebServices |
<add key="webServicesSource" value="http: //localhost/MasterWeb/WebService"/> |
Добавление секций
- 1. В секции <ConfigSections> необходимо добавить подсекцию:
<sectionGroup name="Megatec.Web.Services"> <section name="servicesAccessibility" type="Megatec.Configuration.WebServicesSection, Megatec.Configuration"/> </sectionGroup>
- 2. На одном уровне с секцией <ConfigSections> необходимо добавить секцию:
<Megatec.Web.Services> <servicesAccessibility Enabled="true"> <Services> <add name="DoSearch" enabled="true"/> </Services> </servicesAccessibility> </Megatec.Web.Services>
Подготовка данных
Описание класса SearchFilter
/// <summary> /// Поисковый фильтр /// </summary> public class SearchFilter { public enum SearchSource : short { PriceTables = 0, BindingTables = 1, } public enum KindOfTours : int { All = 0, PacketTours = 1, LandTours = 2 } /// <summary> /// Вид тура /// </summary> public KindOfTours KindOfToursMask { get { return this.kindOfTours; } set { this.kindOfTours = value; } } /// <summary> /// Маска аттрибутов тура /// </summary> public int TurListAttributeMask { get { return this.turlistAttributeMask; } set { this.turlistAttributeMask = value; } } /// <summary> /// Партнер по отелю /// </summary> public int HotelPartnerKey { get { return this.hotelPartnerKey; } set { this.hotelPartnerKey = value; } } [XmlAttribute] public int MaxChildAge { get { return this.maxChildAge; } set { this.maxChildAge = value; } } /// <summary> /// Интервал дат /// </summary> public DateInterval TurDateRange { get { return this._turDateRange; } set { this._turDateRange = value; } } /// <summary> /// Интервал продолжительностей /// </summary> public DurationInterval DurationRange { get { return this._durationRange; } set { this._durationRange = value; } } /// <summary> /// Ключ страны /// </summary> [XmlAttribute] public int CountryKey { get { if (this._countryKeys.Count == 0) return -1; return (int)this._countryKeys[0]; } set { this._countryKeys.Clear(); if (value > 0) this._countryKeys.Add(value); } } /// <summary> /// Массив ключей стран /// </summary> public ArrayList CountryKeys { get { return this._countryKeys; } } /// <summary> /// Поставлен ли флажок все авиакомпании /// </summary> [XmlAttribute] public bool IsAllAirlines { get { return this._isAllAirlines; } set { this._isAllAirlines = value; } } /// <summary> /// Поставлен ли флажок все страны /// </summary> [XmlAttribute] public bool IsAllCountries { get { return this._isAllCountries; } set { this._isAllCountries = value; } } /// <summary> /// Поиск на все продолжительности /// </summary> [XmlAttribute] public bool IsAllDurations { get { return this._isAllDurations; } set { this._isAllDurations = value; } } /// <summary> /// Массив продолжительностей /// </summary> public ArrayList Durations { get { return durations; } } [XmlAttribute] public bool ExcludeNoPlaces { get { return excludeNoPlaces; } set { excludeNoPlaces = value; } } /// <summary> /// Массив продолжительностей в днях /// </summary> public ArrayList Days { get { return days; } } /// <summary> /// Массив продолжительностей в ночах /// </summary> public ArrayList Nights { get { return nights; } } /// <summary> /// Проверять ли квоты /// </summary> [XmlAttribute] public bool CheckQuotes { get { return checkQuotes; } set { checkQuotes = value; } } /// <summary> /// Ключ города отправления /// </summary> [XmlAttribute] public int DepartFromKey { get { if (this._departFromKeys.Count == 0) return -1; return (int)this._departFromKeys[0]; } set { this._departFromKeys.Clear(); if (value >= 0) this._departFromKeys.Add(value); } } /// <summary> /// Ключ города прибытия /// </summary> [XmlAttribute] public int DepartToKey { get { if (this._departToKeys.Count == 0) return -1; return (int)this._departToKeys[0]; } set { this._departToKeys.Clear(); if (value > 0) this._departToKeys.Add(value); } } /// <summary> /// Массив ключей городов вылета /// </summary> public ArrayList DepartFromKeys { get { return this._departFromKeys; } } /// <summary> /// Поставлен ли флажок все города вылетов /// </summary> [XmlAttribute] public bool IsAllDepartsFrom { get { return this._isAllDepartsFrom; } set { this._isAllDepartsFrom = value; } } /// <summary> /// Массив ключей городов прибытия /// </summary> public ArrayList DepartToKeys { get { return this._departToKeys; } } /// <summary> /// Поставлен ли флажок все города вылетов /// </summary> [XmlAttribute] public bool IsAllDepartsTo { get { return this._isAllDepartsTo; } set { this._isAllDepartsTo = value; } } /// <summary> /// Массив ключей аэропортов вылета /// </summary> public ArrayList AirportFromKeys { get { return this._airportFromKeys; } } /// <summary> /// Поставлен ли флажок все города вылетов /// </summary> [XmlAttribute] public bool IsAllAirportsFrom { get { return this._isAllAirportsFrom; } set { this._isAllAirportsFrom = value; } } /// <summary> /// Массив ключей аэропортов прибытия /// </summary> public ArrayList AirportToKeys { get { return this._airportToKeys; } } /// <summary> /// Поставлен ли флажок все города вылетов /// </summary> [XmlAttribute] public bool IsAllAirportsTo { get { return this._isAllAirportsTo; } set { this._isAllAirportsTo = value; } } /// <summary> /// Ключ отеля /// </summary> [XmlAttribute] public int HotelKey { get { if (this._hotelKeys.Count == 0) return -1; return (int)this._hotelKeys[0]; } set { this._hotelKeys.Clear(); if (value > 0) this._hotelKeys.Add(value); } } /// <summary> /// Ключ тура /// </summary> [XmlAttribute] public int TourKey { get { return this._tourKey; } set { this._tourKey = value; } } /// <summary> /// Ограничение цены /// </summary> [XmlAttribute] public double PriceLimit { get { return this._priceLimit; } set { this._priceLimit = value; } } /// <summary> /// Список ключей курортов /// </summary> public ArrayList ResortKeys { get { return this._resortKeys; } } /// <summary> /// Поставлен ли флажок все курорты /// </summary> [XmlAttribute] public bool IsAllResort { get { return this._isAllResort; } set { this._isAllResort = value; } } /// <summary> /// Список ключей городов /// </summary> public ArrayList CityKeys { get { return this._cityKeys; } } /// <summary> /// Установлен ли в фильтре флаг все города /// </summary> [XmlAttribute] public bool IsAllCity { get { return this._isAllCity; } set { this._isAllCity = value; } } /// <summary> /// Список ключей городов /// </summary> public ArrayList HotelKeys { get { return this._hotelKeys; } } /// <summary> /// Список ключей сервисов в отеле /// </summary> public ArrayList HotelOptionsKeys { get { return this._hotelOptionsKeys; } } /// <summary> /// Установлен ли в фильтре флаг все отели /// </summary> [XmlAttribute] public bool IsAllHotels { get { return this._isAllHotels; } set { this._isAllHotels = value; } } /// <summary> /// Список ключей типов туров /// </summary> public ArrayList TourTypeKeys { get { return this._tourTypeKeys; } } /// <summary> /// Установлен ли флаг все типы тура /// </summary> [XmlAttribute] public bool IsAllTourType { get { return this._isAllTourType; } set { this._isAllTourType = value; } } /// <summary> /// Список ключей типов туров /// </summary> public ArrayList TourTypeDetailKeys { get { return this._tourTypeDetailKeys; } } /// <summary> /// Установлен ли флаг все типы тура /// </summary> [XmlAttribute] public bool IsAllTourTypeDetails { get { return this._isAllTourTypeDetails; } set { this._isAllTourTypeDetails = value; } } /// <summary> /// Список звездностей отелей /// </summary> public ArrayList HotelStars { get { return this._hotelStars; } } /// <summary> /// Поиск по всем звездностям /// </summary> [XmlAttribute] public bool IsAllHotelStars { get { return this._isAllHotelStars; } set { this._isAllHotelStars = value; } } /// <summary> /// Список ключей питаний /// </summary> public ArrayList PansionKeys { get { return this._pansionKeys; } } /// <summary> /// Поиск по всем питаниях /// </summary> [XmlAttribute] public bool IsAllPansion { get { return this._isAllPansion; } set { this._isAllPansion = value; } } /// <summary> /// Список ключей авиакомпаний /// </summary> public ArrayList AirlineKeys { get { return this._airlineKeys; } } /// <summary> /// Список ключей типов номеров /// </summary> public ArrayList RoomKeys { get { return this.roomKeys; } } /// <summary> /// Список ключей категорий проживания /// </summary> public ArrayList RoomCategoryKeys { get { return this.roomCategoryKeys; } } /// <summary> /// Список ключей типов размещения /// </summary> public ArrayList AccomodationKeys { get { return this.accomodationKeys; } } /// <summary> /// Список ключей дополнительных услуг в отеле /// </summary> public ArrayList AddHotelServiceKeys { get { return this._addHotelServiceKeys; } } /// <summary> /// Поиск по все услугам в отеле /// </summary> [XmlAttribute] public bool IsAllAddHotelService { get { return this._isAllAddHotelService; } set { this._isAllAddHotelService = value; } } /// <summary> /// Искать только основные типы размещения /// </summary> [XmlAttribute] public bool MainOnly { get { return mainOnly; } set { mainOnly = value; } } /// <summary> /// Искать только туры для групп агентов, в которые входит данное агентство /// </summary> [XmlAttribute] public bool GroupOnly { get { return groupOnly; } set { groupOnly = value; } } /// <summary> /// Количество взрослых /// </summary> [XmlAttribute] public int Adults { get { return adults; } set { adults = value; } } /// <summary> /// Количество детей /// </summary> [XmlAttribute] public int Childs { get { return childs; } set { childs = value; } } /// <summary> /// Возраст первого ребенка /// </summary> [XmlAttribute] public int FirstChildAge { get { return firstChildAge; } set { firstChildAge = value; } } /// <summary> /// Возраст второго ребенка /// </summary> [XmlAttribute] public int SecondChildAge { get { return secondChildAge; } set { secondChildAge = value; } } /// <summary> /// Маска квот на проживание /// </summary> [XmlAttribute] public QuotaResult.Status HotelQuotaMask { get { return hotelQuotaMask; } set { hotelQuotaMask = value; } } /// <summary> /// Маска квот на перелет /// </summary> [XmlAttribute] public QuotaResult.Status AviaQuotaMask { get { return aviaQuotaMask; } set { aviaQuotaMask = value; } } /// <summary> /// Количество строк на странице /// </summary> [XmlAttribute] public int PageSize { get { return this.pageSize; } set { this.pageSize = value; } } /// <summary> /// Ограничение цены снизу /// </summary> [XmlAttribute] public double PriceMinimum { get { return this._priceMinimum; } set { this._priceMinimum = value; this.isNullPriceMinimum = false; } } /// <summary> /// Ограничена ли цена снизу /// </summary> [XmlAttribute] public bool IsNullPriceMinimum { get { return this.isNullPriceMinimum; } set { this.isNullPriceMinimum = value; } } /// <summary> /// Дополнительный фильтр /// </summary> [XmlAttribute] public string AddFilter { get { return addFilter; } set { addFilter = value; } } } }