Esempio n. 1
0
        public IActionResult PriceCheck(DateCheckFormModel dateCheckModel)
        {
            DateTime today = DateTime.UtcNow;

            var hallExists = this.hallsServices.HallExists(dateCheckModel.HallId);

            var enumExists = Enum.IsDefined(typeof(RentTimeEnum), dateCheckModel.RentTime);

            if (dateCheckModel.Date == null || !hallExists || !enumExists)
            {
                TempData.AddErrorMessage("Please make sure all required fields are filled out correctly");
                return(RedirectToAction(nameof(DateCheck), dateCheckModel));
            }

            DateTime eventDate = dateCheckModel.Date ?? DateTime.UtcNow;

            if (eventsServices.EventExists(eventDate, dateCheckModel.RentTime, dateCheckModel.HallId))
            {
                TempData.AddErrorMessage("The selected Hall and Date are already reserved");
                return(RedirectToAction(nameof(DateCheck), dateCheckModel));
            }

            if (eventDate.Date < today.Date)
            {
                TempData.AddErrorMessage("You cannot make a reservation for a past date");
                return(RedirectToAction(nameof(DateCheck), dateCheckModel));
            }

            var priceCheckViewModel = GetEventInfoAndPriceCheckViewModel(dateCheckModel, eventDate);


            return(View(priceCheckViewModel));
        }