public void AddReservation() { repoReservs.AddNewReservation(reservation); }
public async Task <IActionResult> ReservationReviewSetup(ReservationViewModel rvm) { var reservationViewModel = GetReservationViewModelFromSession("reservationwizard"); reservationViewModel.ReviewAndContactSetup = rvm.ReviewAndContactSetup; string userId = null; ApplicationUser currentUser = null; if (User.Identity.IsAuthenticated) { userId = _userManager.GetUserId(HttpContext.User); currentUser = await _userManager.FindByIdAsync(userId); } else { if (!ModelState.IsValid) { return(View(rvm)); } var user = await _userManager.FindByEmailAsync(rvm.ReviewAndContactSetup.Email); if (user != null) { userId = user.Id; currentUser = user; } else { var newUser = Mapper.Map <ApplicationUser>(rvm.ReviewAndContactSetup); try { var userCreation = await _userManager.CreateAsync(newUser); if (userCreation.Succeeded) { currentUser = newUser; var roleAddition = await _userManager.AddToRoleAsync(newUser, "noncustomer"); userId = newUser.Id; } } catch (Exception) { //Log the Error ModelState.AddModelError(string.Empty, "Reservation Could not be Added"); } } } if (userId != null) { var newReservation = new Reservation() { ConfirmationNumber = GetConfirmationNumber(), VehicleId = reservationViewModel.VehicleSetup.ReservationVehicle.Id, PickupDate = reservationViewModel.InitialSetup.PickupDate, ReturnDate = reservationViewModel.InitialSetup.ReturnDate, StoreLocation = reservationViewModel.InitialSetup.StoreLocation, TotalCost = CalculateReservationCost(reservationViewModel.VehicleSetup.ReservationVehicle.PricePerDay, reservationViewModel.InitialSetup.PickupDate, reservationViewModel.InitialSetup.ReturnDate, rvm.StatesTax), }; if (!_reservationRepository.AddNewReservation(newReservation, userId)) { //Log The Error ModelState.AddModelError(string.Empty, "Reservation Could not be Added"); return(View(rvm)); } reservationViewModel.CurrentUserId = currentUser.Id; reservationViewModel.ConfirmationNumber = newReservation.ConfirmationNumber; SaveObjectToSession(reservationViewModel, "reservationwizard"); //Send Email to User } return(RedirectToAction("ReservationComplete")); }