Web-сервисы: Сервис бронирования
Содержание
Введение
Данный модуль включает в себя два сервиса:
- Сервис формирования списка услуг
- Сервис бронирования
Сервис формирования списка услуг предназначен для получения следующей информации:
- общие данные по ключу цены, такие как тур, продолжительности в днях и ночах, описание тура и условия бронирования;
- список услуг, включенных в стоимость, по ключу цены;
- список не рассчитанных услуг по ключу цены;
- список вариантов какой-либо услуги.
Сервис бронирования предназначен для расчета стоимости совокупности услуг, с возможностью их последующего бронирования в базе данных.
Установка
Для установки Сервиса бронирования нужно создать директорию 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)