Exemplo n.º 1
0
 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);
        }