Exemple #1
0
        private AvailabilitySearchResult FindRoomAndRatePlan(OrderRequestDto order, BookingRequestDto bookingRequest)
        {
            Model.Business.Business business =
                businessManager.GetLimitedBusinessByShortname(order.BusinessShortName);

            if (business == null)
            {
                return null;
            }

            var currency = business.WorkingCurrencyCode;

            AvailabilitySearchCriteria availabilitySearchCriteria = new AvailabilitySearchCriteria
            {
                BusinessIds = new List<long>
                            {
                                business.Id
                            },
                StartDate =
                    CalendarDate.ConvertToCalendarDate(
                        bookingRequest.StartDate),
                EndDate =
                    CalendarDate.ConvertToCalendarDate(
                        bookingRequest.EndDate),
                NumberOfAdults = bookingRequest.NumberOfAdults,
                NumberOfChildren = bookingRequest.NumberOfChildren,
                RatePlanId = bookingRequest.RatePlanId,
                RoomTypeId = bookingRequest.RoomTypeId,
                RequestedCurrency = currency,
                ChannelId = order.ChannelId
            };

            // Get the results
            AvailabilitySearchResult result = availabilityManager.CheckAvailability(availabilitySearchCriteria);

            return result;
        }
        /// <summary>
        ///  Convert Booking Dto to Booking business domain
        /// </summary>
        /// <param name="order">OrderRequestDto</param>
        /// <param name="booking">BookingRequestDto</param>
        /// <returns>Booking</returns>
        public static Booking ConvertBookingOnlineDtoToBooking(OrderRequestDto order, BookingRequestDto booking)
        {
            var businessManager = new BusinessManager();
            Model.Business.Business business = businessManager.GetLimitedBusinessByShortname(order.BusinessShortName);

            if (business != null)
            {
                var book = new Booking
                {
                    BusinessId = business.Id,
                    BookingReferenceNumber = order.BookingReferenceNumber,
                    StartDate = booking.StartDate,
                    EndDate = booking.EndDate,
                    NumberOfAdults = booking.NumberOfAdults,
                    NumberOfChildren = booking.NumberOfChildren,
                    Cost = booking.Cost,
                    RoomTypeId = booking.RoomTypeId,
                    RoomId = booking.RoomId,
                    RatePlanId = booking.RatePlanId,
                    CheckinStatus = ConvertCodeAndNameToEnumEntity(booking.CheckinStatusCode),
                    BookingScenarioType = (BookingScenarioTypeEnum)order.BookingScenarioType,
                    Notes = booking.Notes,
                    BookingStatus = ConvertCodeAndNameToEnumEntity(booking.BookingStatusCode),
                    CreatedByUserId = order.CreatedByUserId,
                    CreatedDateTime = order.CreatedDateTime,
                    RateType = ConvertCodeAndNameToEnumEntity(RateType.BEST_AVAILABLE_RATE),
                    ChannelCommissionOverride = booking.ChannelCommissionOverride,
                    Extras = booking.Extras == null ? null : booking.Extras.ConvertAll(MapToOnlineBookingExtra)
                };
                order.Guest.BusinessId = business.Id;
                return book;
            }

            return null;
        }