public async Task <IActionResult> Summary(SummaryAndPersonalInfoModel summaryModel) { if (!ModelState.IsValid) { var dateCheckModel = GetDateCheckFormModel(summaryModel); TempData.AddErrorMessage("Invalid input. Please fill in all required fields"); return(RedirectToAction("PriceCheck", dateCheckModel)); } if (summaryModel.HallId == 0 || summaryModel.Date == null) { var dateCheckModel = GetDateCheckFormModel(summaryModel); TempData.AddErrorMessage("Invalid input. Please fill in all required fields"); return(RedirectToAction("PriceCheck", dateCheckModel)); } if (summaryModel.ParkingLotSecurityService == true && summaryModel.ParkingLotSecurityPrice <= 0) { var dateCheckModel = GetDateCheckFormModel(summaryModel); TempData.AddErrorMessage("Invalid input. Please fill in all required fields"); return(RedirectToAction("PriceCheck", dateCheckModel)); } if (summaryModel.UsingTablesAndChairs == true && summaryModel.TablesAndChairsPrice <= 0 && summaryModel.TablesAndChairsCostPerPerson > 0) { var dateCheckModel = GetDateCheckFormModel(summaryModel); TempData.AddErrorMessage("Invalid input. Please fill in all required fields"); return(RedirectToAction("PriceCheck", dateCheckModel)); } Hall currentHall = this.hallsServices.GetHallById(summaryModel.HallId); string rentTimeDisplay = eventsServices.GetRentTimeDisplay(summaryModel.RentTime); decimal securityDeposit = eventsServices.CalculateSecurityDeposit(summaryModel.RentTime, summaryModel.EventEnd, summaryModel.Date, currentHall.SecurityDepositBefore10pm, currentHall.SecurityDepositAfter10pm); var summaryVM = new SummaryAndPerInfoVM() { HallId = summaryModel.HallId, HallName = currentHall.Name, Date = summaryModel.Date, RentTime = summaryModel.RentTime, RentTimeDisplay = rentTimeDisplay, EventEnd = summaryModel.EventEnd, EventStart = summaryModel.EventStart, NumberOfPeople = summaryModel.NumberOfPeople, UsingTablesAndChairs = summaryModel.UsingTablesAndChairs, TablesAndChairsCostPerPerson = currentHall.TablesAndChairsCostPerPerson, SecurityCostPerHour = summaryModel.SecurityCostPerHour, ParkingLotSecurityService = summaryModel.ParkingLotSecurityService, ParkingLotSecurityHours = summaryModel.ParkingLotSecurityHours, SecurityStartTime = summaryModel.SecurityStartTime, SecurityEndTime = summaryModel.SecurityEndTime, HallRentalPrice = summaryModel.HallRentalPrice, TablesAndChairsPrice = summaryModel.TablesAndChairsPrice, ParkingLotSecurityPrice = summaryModel.ParkingLotSecurityPrice, SecurityDeposit = securityDeposit, TotalPrice = summaryModel.TotalPrice, }; User currentUser = await this.userManager.GetUserAsync(User); if (currentUser != null) { summaryVM.FullName = currentUser.FirstName + " " + currentUser.LastName; summaryVM.PhoneNumber = currentUser.PhoneNumber; summaryVM.Email = currentUser.Email; } return(View(summaryVM)); }