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; }