Web-сервисы: Сервис по проверке наличия мест

Материал из Megatec
Перейти к: навигация, поиск

Введение

Модуль «Сервис проверки наличия мест» предназначен как для проверки квот на одну конкретную услугу, так и на совокупность услуг.

Ссылка на тестовый сервис

С работой тестового сервиса по проверке наличия мест вы можете ознакомиться на нашем демо-сервере.

Установка

Для установки Сервиса проверки наличия мест нужно создать директорию CheckQuotes в каталоге c:/inetpub/wwwroot/ (корневом каталоге IIS) и выложить туда распакованные файлы из архива mw-ws-checkquotes-2007.2.XX.XXXX.zip. В управлении IIS необходимо создать виртуальный каталог для папки CheckQuotes.

Создание виртуального каталога

По умолчанию корневым каталогом IIS является C:/Inetpub/wwwroot. Для создания виртуального каталога для приложения находящегося в этом каталоге нужно выполнить следующие действия:

  • 1. Зайти в Пуск (Start) – Настройки (Settings) – Панель управления (Control Panel).


887.PNG

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


888.PNG

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


889.PNG

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


890.PNG

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


891.PNG

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

В файле web.config, расположенном в папке DistributedSearch пропишите необходимые параметры подключения (курсивом выделены значения, которые необходимо ввести). Строка подключения к базе данных ПК «Мастер-Тур»: <add key = "connectionString" value = "Data Source=ip-адрес сервера базы данных ПК Мастер-тур;Initial Catalog=название базы данных ПК Мастер-тур;User ID=логин пользователя ПК Мастер-тур;Password=пароль пользователя ПК Мастер-тур"/>

Настройка

После установки «Сервис проверки наличия мест» доступен по адресу:
http://ip- адрес сервера Мастер-Веб/CheckQuotes/CheckQuotesService.asmx

Подготовка данных

Сигнатура вызова

/// <summary>
/// Проверка квот на совокупность услуг
/// </summary>
/// <param name="services">Коллекция услуг, на которые необходимо проверить квоты</param>
/// <param name="tourDate">Дата начала тура</param>
/// <param name="tourDuration">Продолжительность тура</param>
/// <param name="currentUserKey">Ключ агентства в таблице партнеров</param>
/// <returns>Совокупная квота</returns>
public QuotaResult.Status CheckQuotes(List<Megatec.Travel.Entities.Service> 
services, DateTime tourDate, int tourDuration, int currentUserKey)

Работа в системе

Пример SOAP-запроса к сервису на проверку квот по перелетам

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 <soap:Body>
   <CheckQuotes xmlns="http://megatec.ru/">
     <services>
       <Service xsi:type="FlightService">
         <StartDay>1</StartDay>
         <Duration>0</Duration>
         <NMen>2</NMen>
         <Partner>
           <ID>27990</ID>
         </Partner>
         <Quota>NotChecked</Quota>
         <PacketID>19443</PacketID>
         <ServiceClass>
           <ID>1</ID>
         </ServiceClass>
         <Tariff>
           <ID>226</ID>
         </Tariff>
         <Flight>
           <ID>522</ID>
           <CityFrom>
             <ID>1</ID>
           </CityFrom>
           <CityTo>
             <ID>275</ID>
           </CityTo>
         </Flight>
       </Service>
       <Service xsi:type="FlightService">
         <StartDay>8</StartDay>
         <Duration>0</Duration>
         <Attribute>0</Attribute>
         <NMen>2</NMen>
         <Partner>
           <ID>27990</ID>
         </Partner>
         <Quota>NotChecked</Quota>
         <PacketID>18920</PacketID>
         <ServiceClass>
           <ID>1</ID>
         </ServiceClass>
         <Tariff>
           <ID>226</ID>
         </Tariff>
         <Flight>
           <ID>523</ID>
           <CityFrom>
             <ID>275</ID>
           </CityFrom>
           <CityTo>
             <ID>1</ID>
           </CityTo>
         </Flight>
       </Service>
     </services>
     <tourDate>2016-08-04T00:00:00</tourDate>
     <tourDuration>8</tourDuration>
     <currentUserKey>10764</currentUserKey>
   </CheckQuotes>
 </soap:Body>
</soap:Envelope>

Пример SOAP-ответа сервиса проверки квот по перелетам

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <soap:Body>
      <CheckQuotesResponse xmlns="http://megatec.ru/">
         <CheckQuotesResult>No</CheckQuotesResult>
      </CheckQuotesResponse>
   </soap:Body>
</soap:Envelope>

Пример SOAP-запроса к сервису на проверку квот по отелю

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 <soap:Body>
   <CheckQuotes xmlns="http://megatec.ru/">
     <services>
       <Service xsi:type="HotelService">
         <StartDay>1</StartDay>
         <Duration>7</Duration>
         <NMen>2</NMen>
         <Partner>
           <ID>18411</ID>
         </Partner>
         <Quota>NotChecked</Quota>
         <PacketID>19443</PacketID>
         <City>
           <ID>233</ID>
         </City>
         <Country>
           <ID>520</ID>
         </Country>
         <ServiceClass>
           <ID>3</ID>
         </ServiceClass>
         <Hotel>
           <ID>3004</ID>
         </Hotel>
         <Room>
           <RoomType>
             <ID>2</ID>
           </RoomType>
           <RoomCategory>
             <ID>41</ID>
           </RoomCategory>
           <RoomAccomodation>
             <ID>633</ID>
           </RoomAccomodation>
         </Room>
       </Service>
     </services>
     <tourDate>2016-08-04T00:00:00</tourDate>
     <tourDuration>8</tourDuration>
     <currentUserKey>10764</currentUserKey>
   </CheckQuotes>
 </soap:Body>
</soap:Envelope>

Пример SOAP-ответа сервиса проверки квот по отелю

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <soap:Body>
      <CheckQuotesResponse xmlns="http://megatec.ru/">
         <CheckQuotesResult>Request</CheckQuotesResult>
      </CheckQuotesResponse>
   </soap:Body>
</soap:Envelope>