/// <summary> /// This method will push an inventory message on the queue /// </summary> /// <param name="businessShortname">Business Short Name</param> /// <param name="roomTypeIds">room type Ids</param> /// <param name="startDate">Start Date</param> /// <param name="endDate">End Date</param> public void SendInventoryClose(string businessShortname, int[] roomTypeIds, DateTime startDate, DateTime endDate) { var hotelAvailNotifRq = new OTA_HotelAvailNotifRQ(); var hotelAvailNotifRqAvailStatusMessages = new OTA_HotelAvailNotifRQAvailStatusMessages(); hotelAvailNotifRq.AvailStatusMessages = hotelAvailNotifRqAvailStatusMessages; hotelAvailNotifRqAvailStatusMessages.HotelCode = businessShortname; var availStatusMessages = new List<AvailStatusMessageType>(); foreach (var roomTypeId in roomTypeIds) { var availStatusMessageType = new AvailStatusMessageType(); availStatusMessageType.BookingLimit = "0"; availStatusMessageType.StatusApplicationControl = new StatusApplicationControlType(); availStatusMessageType.StatusApplicationControl.Start = startDate.ToString(Formats.UNIVERSAL_SHORT_DATE); availStatusMessageType.StatusApplicationControl.End = endDate.ToString(Formats.UNIVERSAL_SHORT_DATE); availStatusMessageType.StatusApplicationControl.InvTypeCode = roomTypeId.ToString(); availStatusMessages.Add(availStatusMessageType); } hotelAvailNotifRqAvailStatusMessages.AvailStatusMessage = availStatusMessages.ToArray(); SetLocatorId(hotelAvailNotifRq); PPCGateway.Publish(hotelAvailNotifRq); }
/// <summary> /// Send a rate restriction for a rate plan /// </summary> /// <param name="businessShortname">Business short name</param> /// <param name="roomTypeId">Room type id</param> /// <param name="ratePlanId">Rate plan id</param> /// <param name="status">Availability status</param> /// <param name="startDate">Start date</param> /// <param name="endDate">End date</param> /// <returns>True if it is a success</returns> public bool SendRatesRestrictionUpdate(string businessShortname, int roomTypeId, int ratePlanId, AvailabilityStatusType status = AvailabilityStatusType.Open, DateTime? startDate = null, DateTime? endDate = null) { var hotelAvailNotifRq = new OTA_HotelAvailNotifRQ(); var hotelAvailNotifRQAvailStatusMessages = new OTA_HotelAvailNotifRQAvailStatusMessages(); hotelAvailNotifRq.AvailStatusMessages = hotelAvailNotifRQAvailStatusMessages; hotelAvailNotifRQAvailStatusMessages.HotelCode = businessShortname; List<AvailStatusMessageType> availStatusMessages = null; if (status != AvailabilityStatusType.Close) { availStatusMessages = GetRateRestrictions(businessShortname, roomTypeId, ratePlanId, status, startDate, endDate); } else { availStatusMessages = new List<AvailStatusMessageType> { GetCloseRestrictionRates(roomTypeId, ratePlanId, startDate, endDate) }; } if (availStatusMessages != null) { hotelAvailNotifRQAvailStatusMessages.AvailStatusMessage = availStatusMessages.ToArray(); SetLocatorId(hotelAvailNotifRq); PPCGateway.Publish(hotelAvailNotifRq); } return true; }
/// <summary> /// This method will push a message on the queue /// </summary> /// <param name="businessShortname">Business Short Name</param> /// <param name="startDate">start date</param> /// <param name="endDate">end date</param> /// <param name="roomTypeIds">room type ids</param> public void SendInventoryUpdate(string businessShortname, int[] roomTypeIds, DateTime startDate, DateTime endDate) { var hotelAvailNotifRq = new OTA_HotelAvailNotifRQ(); var hotelAvailNotifRQAvailStatusMessages = new OTA_HotelAvailNotifRQAvailStatusMessages(); hotelAvailNotifRq.AvailStatusMessages = hotelAvailNotifRQAvailStatusMessages; hotelAvailNotifRQAvailStatusMessages.HotelCode = businessShortname; var availStatusMessages = new List<AvailStatusMessageType>(); foreach (var roomTypeId in roomTypeIds) { IEnumerable<AvailStatusMessageType> roomTypeavailStatusMessages = GetInventoryAvailability(roomTypeId, startDate, endDate); if (roomTypeavailStatusMessages != null) { availStatusMessages.AddRange(roomTypeavailStatusMessages); } } if (availStatusMessages.Any()) { hotelAvailNotifRQAvailStatusMessages.AvailStatusMessage = availStatusMessages.ToArray(); SetLocatorId(hotelAvailNotifRq); PPCGateway.Publish(hotelAvailNotifRq); } }
/// <summary> /// Send rates restriction update for a business /// </summary> /// <param name="businessId">Busisness Id</param> /// <param name="businessShortname">Business short name</param> /// <param name="status">AvailabilityStatusType</param> /// <returns>True if it is a success</returns> public bool SendRatesRestrictionUpdate(string businessShortname, long businessId, AvailabilityStatusType status) { var hotelAvailNotifRq = new OTA_HotelAvailNotifRQ(); var hotelAvailNotifRQAvailStatusMessages = new OTA_HotelAvailNotifRQAvailStatusMessages(); hotelAvailNotifRq.AvailStatusMessages = hotelAvailNotifRQAvailStatusMessages; hotelAvailNotifRQAvailStatusMessages.HotelCode = businessShortname; var availStatusMessages = GetRateRestrictions(businessId, status); if (availStatusMessages != null) { hotelAvailNotifRQAvailStatusMessages.AvailStatusMessage = availStatusMessages.ToArray(); SetLocatorId(hotelAvailNotifRq); PPCGateway.Publish(hotelAvailNotifRq); } return true; }