Web-сервисы: Сервис бронирования — различия между версиями
[досмотренная версия] | [досмотренная версия] |
Строка 65: | Строка 65: | ||
public int Nights { get; set; } | public int Nights { get; set; } | ||
}</nowiki> | }</nowiki> | ||
+ | ====ReservationParams==== | ||
+ | <nowiki>/// <summary> | ||
+ | /// Параметры бронирования | ||
+ | /// </summary> | ||
+ | public class ReservationParams | ||
+ | { | ||
+ | /// <summary> | ||
+ | /// Идентификатор рекламного источника в БД | ||
+ | /// </summary> | ||
+ | public int AdvertiseID { get; set; } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Идентификатор основания для скидки в БД | ||
+ | /// </summary> | ||
+ | public int CauseDiscountID { get; set; } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Идентификатор страны тура | ||
+ | /// </summary> | ||
+ | public int CountryID { get; set; } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Идентификатор пользователя, бронирующего тур | ||
+ | /// </summary> | ||
+ | public int DupUserID { get; set; } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Имя оператора | ||
+ | /// </summary> | ||
+ | public string OperatorName { get; set; } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Иденификатор ведущего менеджера по путевке | ||
+ | /// </summary> | ||
+ | public int OwnerID { get; set; } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Идентификатор партнера, бронирующего тур | ||
+ | /// </summary> | ||
+ | public int PartnerID { get; set; } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Валюта, в котрой производится бронирование | ||
+ | /// (если не задана, то вытягивается из тура) | ||
+ | /// </summary> | ||
+ | public string RateCode { get; set; } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Бронируемая продолжительность | ||
+ | /// (если не задана, то высчитывается на основании услуг) | ||
+ | /// </summary> | ||
+ | public int ReserveDuration { get; set; } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Дата тура | ||
+ | /// </summary> | ||
+ | public DateTime TourDate { get; set; } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Идентификатор тура | ||
+ | /// </summary> | ||
+ | public int TourID { get; set; } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Количество туристов по услугам | ||
+ | /// </summary> | ||
+ | public int TouristsCount { get; set; } | ||
+ | }</nowiki> | ||
+ | ====ReservationResult==== | ||
+ | <nowiki>/// <summary> | ||
+ | /// Класс, описывающий результат расчета стоимости и бронирования комплекса услуг | ||
+ | /// </summary> | ||
+ | public class ReservationResult | ||
+ | { | ||
+ | /// <summary> | ||
+ | /// Стоимость к оплате | ||
+ | /// </summary> | ||
+ | public double Brutto { get; set; } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Процент скидки | ||
+ | /// </summary> | ||
+ | public double DiscountPercent { get; set; } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Абсолютная величина скидки | ||
+ | /// </summary> | ||
+ | public double DiscountSumm { get; set; } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Валюта | ||
+ | /// </summary> | ||
+ | public string Rate { get; set; } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Код сформированной путевки | ||
+ | /// </summary> | ||
+ | public string ReservationCode { get; set; } | ||
+ | |||
+ | /// <summary> | ||
+ | /// Сообщение об ошибке | ||
+ | /// </summary> | ||
+ | public string ErrorMessage { get; set; } | ||
+ | }</nowiki> | ||
+ | ===Сервис формирования списка услуг (ServiceProvider.asmx)=== | ||
+ | ====Метод получения информации по ключу цены==== | ||
+ | =====Сигнатура вызова===== | ||
+ | <nowiki>/// <summary> | ||
+ | /// Получение информации о цене | ||
+ | /// </summary> | ||
+ | /// <param name="priceKey">Ключ цены</param> | ||
+ | /// <param name="includeTourDescriptionText">Возвращать ли описание тура</param> | ||
+ | /// <param name="includeBookingConditionsText">Возвращать ли условия бронирования по туру</param> | ||
+ | /// <returns></returns> | ||
+ | [WebMethod] | ||
+ | public CalculatedPriceInfo GetCalculatedPriceInfo(int priceKey, bool includeTourDescriptionText, bool includeBookingConditionsText)</nowiki> | ||
+ | ====Метод получения рассчитанных услуг==== | ||
+ | =====Сигнатура вызова===== | ||
+ | <nowiki>/// <summary> | ||
+ | /// Возвращает список рассчитанных услуг по ключу цены | ||
+ | /// </summary> | ||
+ | /// <param name="priceKey">Ключ обсчитанной цены</param> | ||
+ | /// <returns></returns> | ||
+ | [WebMethod] | ||
+ | public List<Service> GetCalculatedServices(int priceKey)</nowiki> | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
[[Category:Мастер-Web_Дополнительные_модули]] | [[Category:Мастер-Web_Дополнительные_модули]] |
Версия 14:00, 1 ноября 2011
Содержание
Введение
Данный модуль включает в себя два сервиса:
- Сервис формирования списка услуг
- Сервис бронирования
Сервис формирования списка услуг предназначен для получения следующей информации:
- общие данные по ключу цены, такие как тур, продолжительности в днях и ночах, описание тура и условия бронирования;
- список услуг, включенных в стоимость, по ключу цены;
- список не рассчитанных услуг по ключу цены;
- список вариантов какой-либо услуги.
Сервис бронирования предназначен для расчета стоимости совокупности услуг, с возможностью их последующего бронирования в базе данных.
Установка
Для установки Сервиса бронирования нужно создать директорию Reservation в каталоге c:/inetpub/wwwroot/ (корневом каталоге IIS) и выложить туда распакованные файлы из архива mw-ws-reservation-2007.2.XX.XXXX.zip. В управлении IIS необходимо создать виртуальный каталог для папки Reservation.
Создание виртуального каталога
По умолчанию корневым каталогом 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», а затем кнопку «ОК».
1.2 Подключение к базе данных ПК «Мастер-Тур»
В файле web.config, расположенном в папке Reservation пропишите необходимые параметры подключения (курсивом выделены значения, которые необходимо ввести).
Строка подключения к базе данных ПК «Мастер-Тур»:
<add key = "connectionString" value = "Data Source=ip-адрес сервера базы данных ПК Мастер-тур;Initial Catalog=название базы данных ПК Мастер-тур;User ID=логин пользователя ПК Мастер-тур;Password=пароль пользователя ПК Мастер-тур"/>
Настройка
После установки «Сервис бронирования» доступен по адресу:
- http: //ip- адрес сервера Мастер-Веб/Reservation/ServiceProvider.asmx (сервис формирования списка услуг)
- http: //ip- адрес сервера Мастер-Веб/Reservation/ReservationService.asmx (сервис бронирования)
Подготовка данных
Описание формата данных
CalculatedPriceInfo
/// <summary> /// Информация по рассчитанной цене /// </summary> public class CalculatedPriceInfo { /// <summary> /// Прайс-лист /// </summary> public PriceTour PriceTour { get; set; } /// <summary> /// Дата тура /// </summary> public DateTime TourDate { get; set; } /// <summary> /// Количество дней по туру /// </summary> public int TotalDays { get; set; } /// <summary> /// Количество ночей по туру /// </summary> public int Nights { get; set; } }
ReservationParams
/// <summary> /// Параметры бронирования /// </summary> public class ReservationParams { /// <summary> /// Идентификатор рекламного источника в БД /// </summary> public int AdvertiseID { get; set; } /// <summary> /// Идентификатор основания для скидки в БД /// </summary> public int CauseDiscountID { get; set; } /// <summary> /// Идентификатор страны тура /// </summary> public int CountryID { get; set; } /// <summary> /// Идентификатор пользователя, бронирующего тур /// </summary> public int DupUserID { get; set; } /// <summary> /// Имя оператора /// </summary> public string OperatorName { get; set; } /// <summary> /// Иденификатор ведущего менеджера по путевке /// </summary> public int OwnerID { get; set; } /// <summary> /// Идентификатор партнера, бронирующего тур /// </summary> public int PartnerID { get; set; } /// <summary> /// Валюта, в котрой производится бронирование /// (если не задана, то вытягивается из тура) /// </summary> public string RateCode { get; set; } /// <summary> /// Бронируемая продолжительность /// (если не задана, то высчитывается на основании услуг) /// </summary> public int ReserveDuration { get; set; } /// <summary> /// Дата тура /// </summary> public DateTime TourDate { get; set; } /// <summary> /// Идентификатор тура /// </summary> public int TourID { get; set; } /// <summary> /// Количество туристов по услугам /// </summary> public int TouristsCount { get; set; } }
ReservationResult
/// <summary> /// Класс, описывающий результат расчета стоимости и бронирования комплекса услуг /// </summary> public class ReservationResult { /// <summary> /// Стоимость к оплате /// </summary> public double Brutto { get; set; } /// <summary> /// Процент скидки /// </summary> public double DiscountPercent { get; set; } /// <summary> /// Абсолютная величина скидки /// </summary> public double DiscountSumm { get; set; } /// <summary> /// Валюта /// </summary> public string Rate { get; set; } /// <summary> /// Код сформированной путевки /// </summary> public string ReservationCode { get; set; } /// <summary> /// Сообщение об ошибке /// </summary> public string ErrorMessage { get; set; } }
Сервис формирования списка услуг (ServiceProvider.asmx)
Метод получения информации по ключу цены
Сигнатура вызова
/// <summary> /// Получение информации о цене /// </summary> /// <param name="priceKey">Ключ цены</param> /// <param name="includeTourDescriptionText">Возвращать ли описание тура</param> /// <param name="includeBookingConditionsText">Возвращать ли условия бронирования по туру</param> /// <returns></returns> [WebMethod] public CalculatedPriceInfo GetCalculatedPriceInfo(int priceKey, bool includeTourDescriptionText, bool includeBookingConditionsText)
Метод получения рассчитанных услуг
Сигнатура вызова
/// <summary> /// Возвращает список рассчитанных услуг по ключу цены /// </summary> /// <param name="priceKey">Ключ обсчитанной цены</param> /// <returns></returns> [WebMethod] public List<Service> GetCalculatedServices(int priceKey)