public InternalSlimRateDetails(int roomId, int accommodationId, MoneyAmount totalAmount, double discount, BoardBasisTypes boardBasis, List <InternalSlimCancellationPolicies> cancellationPolicies, RoomTypes roomType, RoomOccupationRequest occupationRequest) { RoomId = roomId; AccommodationId = accommodationId; TotalAmount = totalAmount; Discount = discount; BoardBasis = boardBasis; CancellationPolicies = cancellationPolicies; RoomType = roomType; OccupationRequest = occupationRequest; }
public RateDetails(RoomOccupationRequest occupationRequest, Room room, RoomTypes roomType, PaymentDetails paymentDetails, List <CancellationPolicyDetails> cancellationPolicies, string mealPlan, BoardBasisTypes boardBasis, List <TaxDetails> taxes, string description) { Room = room; RoomType = roomType; PaymentDetails = paymentDetails; MealPlan = mealPlan; BoardBasis = boardBasis; CancellationPolicies = cancellationPolicies; Taxes = taxes ?? new List <TaxDetails>(); Description = description; OccupationRequest = occupationRequest; }
private bool IsRoomCompatibleWithOccupancyConfiguration(RoomOccupationRequest occupationRequestItem, OccupancyConfiguration occupancyConfiguration, OccupancyDefinition occupancyDefinition) { var infantsNumber = 0; var childrenNumber = 0; var teenagersNumber = 0; var adultsNumber = occupationRequestItem.AdultsNumber; foreach (var childrenAge in occupationRequestItem.ChildrenAges) { if (occupancyDefinition.Infant != null && occupancyDefinition.Infant.LowerBound <= childrenAge && childrenAge <= occupancyDefinition.Infant.UpperBound) { infantsNumber++; continue; } if (occupancyDefinition.Child != null && occupancyDefinition.Child.LowerBound <= childrenAge && childrenAge <= occupancyDefinition.Child.UpperBound) { childrenNumber++; continue; } if (occupancyDefinition.Teenager != null && occupancyDefinition.Teenager.LowerBound <= childrenAge && childrenAge <= occupancyDefinition.Teenager.UpperBound) { teenagersNumber++; continue; } if (occupancyDefinition.Adult.LowerBound <= childrenAge) { adultsNumber++; } } return(infantsNumber <= occupancyConfiguration.Infants && childrenNumber <= occupancyConfiguration.Children && teenagersNumber <= occupancyConfiguration.Teenagers && adultsNumber <= occupancyConfiguration.Adults); }
public List <RateDetails> GetAvailableRates(RoomOccupationRequest occupationRequest, List <Room> rooms, DateTime checkInDate, DateTime checkOutDate, string languageCode) => rooms.Select(room =>
private bool IsRoomCompatibleWithOccupancyRequestItem(Room room, RoomOccupationRequest occupationRequestItem) => room.OccupancyConfigurations.Any(occupancyConfiguration => IsRoomCompatibleWithOccupancyConfiguration(occupationRequestItem, occupancyConfiguration, room.Accommodation.OccupancyDefinition));