public Accommodation(int id, MultiLanguage <string> name, MultiLanguage <string> address, MultiLanguage <TextualDescription> description, GeoPoint coordinates, AccommodationStars rating, string checkInTime, string checkOutTime, ContactInfo contactInfo, PropertyTypes type, MultiLanguage <List <string> > amenities, MultiLanguage <string> additionalInfo, OccupancyDefinition occupancyDefinition, int locationId, MultiLanguage <List <string> > leisureAndSports, Status status, RateOptions rateOptions, int?floors, int?buildYear, string postalCode, List <Room> rooms) { Id = id; Name = name; Address = address; Description = description; Coordinates = coordinates; Rating = rating; CheckInTime = checkInTime; CheckOutTime = checkOutTime; ContactInfo = contactInfo; Type = type; Amenities = amenities; AdditionalInfo = additionalInfo; OccupancyDefinition = occupancyDefinition; LocationId = locationId; RateOptions = rateOptions; Status = status; LeisureAndSports = leisureAndSports; Rooms = rooms; Floors = floors; BuildYear = buildYear; PostalCode = postalCode; }
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); }