Web-сервисы: Сервис поиска — различия между версиями

Материал из Megatec
Перейти к: навигация, поиск
[досмотренная версия][досмотренная версия]
Строка 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)


799.PNG

  • 2. В открывшемся окне выбрать Администрирование (Administrative Tools).


800.PNG

  • 3. Запустить Internet Information Services (IIS) Manager.


801.PNG

  • 4. В открывшемся дереве каталогов выбрать Web Sites – Default Web Site. В открывшемся списке найти папку, для которой нужно создать виртуальный каталог, кликнуть по ней правой кнопкой мыши и зайти в Свойства (Properties).


802.PNG

  • 5. В открывшемся окне, в закладке Directory нужно нажать кнопку «Create», а затем кнопку «ОК».


803.PNG

Подключение к базе данных ПК «Мастер-Тур»

В файле 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;
            }
        }
    }
}