Example #1
0
        /// <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);
        }
Example #2
0
        /// <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;
        }
Example #3
0
        /// <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);
            }
        }
Example #4
0
        /// <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;
        }