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;
}
}
}
}