Esempio n. 1
0
 private BargainsRateDto RateToDto(HotelRate rate)
 {
     return(new BargainsRateDto()
     {
         boardType = rate.BoardType,
         rateType = rate.RateType.ToString(),
         Price = rate.HotelRateCost()
     });
 }
        public PartialViewResult RateHotel(string Rate, int HotelId)
        {
            Hotel hotel = db.Hotels.Include("City")
                          .Include("Images")
                          .Include("HotelRooms")
                          .Include("HotelRooms.Room")
                          .Include("HotelRates")
                          .SingleOrDefault(x => x.Id == HotelId);

            string userId = User.Identity.GetUserId();

            HotelRate hr = db.HotelRates.SingleOrDefault(x => x.Hotel.Id == hotel.Id && x.User.Id == userId);

            if (hr == null)
            {
                hr = new HotelRate()
                {
                    Hotel = hotel,
                    User  = db.Users.Find(User.Identity.GetUserId()),
                    Rate  = Rate
                };
                db.HotelRates.Add(hr);
            }
            else
            {
                hr.Rate = Rate;
            }
            db.SaveChanges();


            int ExRate = hotel.HotelRates.Where(x => x.Rate == "Excellent").Count();
            int GRate  = hotel.HotelRates.Where(x => x.Rate == "Good").Count();
            int NBRate = hotel.HotelRates.Where(x => x.Rate == "Not Bad").Count();
            int BRate  = hotel.HotelRates.Where(x => x.Rate == "Bad").Count();

            int allRates = hotel.HotelRates.Count;

            float GPer  = (float)(GRate * 100) / allRates;
            float ExPer = (float)(ExRate * 100) / allRates;
            float NbPer = (float)(NBRate * 100) / allRates;
            float BPer  = (float)(BRate * 100) / allRates;

            ViewBag.GRate  = GPer;
            ViewBag.ExRate = ExPer;
            ViewBag.NbRate = NbPer;
            ViewBag.BRate  = BPer;

            return(PartialView("_HotelRatingPartial", hotel));
        }
        public static HotelAvailability Map(AvailabilityDto dto, int nights)
        {
            var result = new HotelAvailability
            {
                Hotel = new HotelInfo
                {
                    Name   = dto?.Hotel?.Name,
                    Rating = dto?.Hotel?.Rating ?? 0
                }
            };

            result.Rates = new List <HotelRate>();

            if (dto.Rates != null)
            {
                foreach (var rateDto in dto.Rates)
                {
                    var rate = new HotelRate();

                    switch (rateDto.BoardType)
                    {
                    case "No Meals":
                        rate.BoardType = Core.Common.Enum.BoardType.NoMeals;
                        break;

                    case "Half Board":
                        rate.BoardType = Core.Common.Enum.BoardType.HalfBoard;
                        break;

                    case "Full Board":
                        rate.BoardType = Core.Common.Enum.BoardType.FullBoard;
                        break;
                    }

                    rate.RateType = rateDto.RateType == "PerNight" ? Core.Common.Enum.HotelRateType.PerNight : Core.Common.Enum.HotelRateType.Stay;

                    rate.FinalPrice = rate.RateType == Core.Common.Enum.HotelRateType.PerNight
                                        ? rateDto.Value * nights
                                        : rateDto.Value;

                    result.Rates.Add(rate);
                }
            }

            return(result);
        }
Esempio n. 4
0
        public HotelRateExcelRow MapHotelRateToExcelSummary(HotelRate hotelRate)
        {
            var arrivalDate       = hotelRate.TargetDay.Date;
            var departureDate     = arrivalDate.AddDays(hotelRate.Los).Date;
            var price             = hotelRate.Price.NumericFloat;
            var currency          = hotelRate.Price.Currency;
            var rateName          = hotelRate.RateName;
            var adults            = hotelRate.Adults;
            var breakfastIncluded = hotelRate.RateTags
                                    .Any(tag => tag.Name == Breakfastliteral && tag.Shape);
            var breakfastIncludedAsInt = breakfastIncluded ? 1 : 0;

            return(new HotelRateExcelRow(
                       arrivalDate,
                       departureDate,
                       price,
                       currency,
                       rateName,
                       adults,
                       breakfastIncludedAsInt));
        }