public AccommodationModelOut(AccommodationQueryOut a)
 {
     this.Address       = a.Address;
     this.Description   = a.Description;
     this.Images        = a.Images;
     this.Name          = a.Name;
     this.PricePerNight = a.PricePerNight;
     this.Rating        = a.Rating;
     this.TotalPrice    = a.TotalPrice;
     this.Reviews       = a.Reviews;
 }
        public List <AccommodationQueryOut> GetAll()
        {
            List <AccommodationQueryOut> accommodationsToReturn = new List <AccommodationQueryOut>();
            List <Accommodation>         accommodations         = this.accommodationRepository.GetAll();

            foreach (var item in accommodations)
            {
                AccommodationQueryOut a = new AccommodationQueryOut(item);
                accommodationsToReturn.Add(a);
            }
            return(accommodationsToReturn);
        }
        public List <AccommodationQueryOut> GetByTouristSpot(AccommodationQueryIn accommodationQueryIn)
        {
            List <AccommodationQueryOut> accommodationsToReturn = new List <AccommodationQueryOut>();
            List <Accommodation>         accommodations         = this.accommodationRepository
                                                                  .GetAllAvailableByTouristSpotName(accommodationQueryIn.TouristSpotName);

            foreach (var item in accommodations)
            {
                AccommodationQueryOut a = new AccommodationQueryOut(item);
                double totalPrice       = this.CalculateTotalPrice(accommodationQueryIn, a);
                a.TotalPrice = totalPrice;
                accommodationsToReturn.Add(a);
            }
            return(accommodationsToReturn);
        }
        private double CalculateTotalPrice(AccommodationQueryIn accommodationQueryIn, AccommodationQueryOut a)
        {
            int    totalDays  = (accommodationQueryIn.CheckOut - accommodationQueryIn.CheckIn).Days;
            double totalPrice =
                CalculateTotalPriceForRetirees(accommodationQueryIn.Retirees, totalDays, a.PricePerNight) +
                CalculateTotatPriceForAdults(accommodationQueryIn.Adults, totalDays, a.PricePerNight) +
                CalculateTotalPriceForKids(accommodationQueryIn.Kids, a.PricePerNight, totalDays) +
                CalculateTotalPriceForBabies(accommodationQueryIn.Babies, a.PricePerNight, totalDays);

            return(totalPrice);
        }