public async Task <IActionResult> CreateEvent(CreateEventFormModel eventModel) { var hallExists = hallsServices.HallExists(eventModel.HallId); if (!hallExists) { return(NotFound()); } if (!ModelState.IsValid) { string rentTimeDisplay = eventsServices.GetRentTimeDisplay(eventModel.RentTime); var summaryModel = new SummaryAndPerInfoVM { Date = eventModel.Date, HallId = eventModel.HallId, RentTime = eventModel.RentTime, RentTimeDisplay = rentTimeDisplay, NumberOfPeople = eventModel.NumberOfPeople, UsingTablesAndChairs = eventModel.UsingTablesAndChairs, TypeOfEvent = eventModel.TypeOfEvent, HallRentalPrice = eventModel.HallRentalPrice, SecurityCostPerHour = eventModel.SecurityCostPerHour, ParkingLotSecurityService = eventModel.ParkingLotSecurityService, ParkingLotSecurityHours = eventModel.ParkingLotSecurityHours, SecurityStartTime = eventModel.SecurityStartTime, SecurityEndTime = eventModel.SecurityEndTime, ParkingLotSecurityPrice = eventModel.ParkingLotSecurityPrice, TablesAndChairsPrice = eventModel.TablesAndChairsPrice, TotalPrice = eventModel.TotalPrice, FullName = eventModel.FullName, Email = eventModel.Email, PhoneNumber = eventModel.PhoneNumber, TablesAndChairsCostPerPerson = eventModel.TablesAndChairsCostPerPerson, Caterer = eventModel.Caterer, EventDescription = eventModel.EventDescription }; return(View("Summary", summaryModel)); } string tenantId = null; User currentUser = await this.userManager.GetUserAsync(User); if (currentUser != null) { tenantId = currentUser.Id; } this.eventsServices.Create( eventModel.HallId, tenantId, eventModel.Date, eventModel.RentTime, eventModel.FullName, eventModel.Email, eventModel.PhoneNumber, eventModel.EventStart, eventModel.EventEnd, eventModel.NumberOfPeople, eventModel.UsingTablesAndChairs, eventModel.TablesAndChairsCostPerPerson, eventModel.SecurityCostPerHour, eventModel.ParkingLotSecurityService, eventModel.ParkingLotSecurityHours, eventModel.SecurityStartTime, eventModel.SecurityEndTime, eventModel.HallRentalPrice, eventModel.TablesAndChairsPrice, eventModel.ParkingLotSecurityPrice, eventModel.SecurityDeposit, eventModel.TotalPrice, eventModel.EventDescription, eventModel.Caterer, eventModel.TypeOfEvent); //Send Email to Administration string messageBody = this.emailService.GetTextBodyForEmailForReservation( eventModel.Date, eventModel.FullName, eventModel.Email, eventModel.PhoneNumber, eventModel.NumberOfPeople, eventModel.TotalPrice); string messageBodyForTenant = this.emailService.GetTextBodyForTenant( eventModel.Date, eventModel.FullName, eventModel.NumberOfPeople, eventModel.TotalPrice); await this.emailSender.SendEmailAsync(GlobalConstants.HomeEmail, "Reservation request", messageBody); await this.emailSender.SendEmailAsync(eventModel.Email, "Reservation request received", messageBodyForTenant); return(RedirectToAction(nameof(ReservationSuccessful))); }
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)); }