private async Task <AppUser> CreateNewUser(ReservationContactViewModel rcvm) { if (await _userManager.FindByEmailAsync(rcvm.Email) == null) { var newUser = Mapper.Map <AppUser>(rcvm); try { var userCreation = await _userManager.CreateAsync(newUser, rcvm.Password); if (userCreation.Succeeded) { await _userManager.AddToRoleAsync(newUser, "customer"); await _signInManager.SignInAsync(newUser, false); return(newUser); } } catch (Exception) { return(null); } } return(null); }
public IActionResult ContactSetup(ReservationContactViewModel rcvm) { if (ModelState.IsValid) { var currModel = _sessionService.GetFromSession <ReservationViewModel>(HttpContext, ReservationViewModel.SessionKey); if (rcvm.Password != null) { var newUser = CreateNewUser(rcvm); if (newUser != null) { currModel.AppUser = newUser.Result; } else { ModelState.AddModelError(string.Empty, "This Account already Exists"); return(View(rcvm)); } } currModel.ReservationContact = Mapper.Map <ReservationContact>(rcvm); currModel.ContactSetup = rcvm; _sessionService.SaveToSession(HttpContext, currModel, ReservationViewModel.SessionKey); return(RedirectToAction("Review")); } return(View(rcvm)); }
public IActionResult ReservationReviewSetup() { var currModel = GetReservationViewModelFromSession("reservationwizard"); var reviewAndContactSetup = new ReservationContactViewModel { TotalCost = CalculateReservationCost(currModel.VehicleSetup.ReservationVehicle.PricePerDay, currModel.InitialSetup.PickupDate, currModel.InitialSetup.ReturnDate, currModel.StatesTax) }; currModel.ReviewAndContactSetup = reviewAndContactSetup; return(View(currModel)); }
public async Task <IActionResult> UpdateCancelReservation(Reservation reservation) { var reservationOwner = await _userManager.FindByIdAsync(reservation.ApplicationUserId); ReservationLocationViewModel rlvm = new ReservationLocationViewModel { PickupDate = reservation.PickupDate, ReturnDate = reservation.ReturnDate, StoreLocation = reservation.StoreLocation, }; ReservationContactViewModel rcvm = new ReservationContactViewModel { Email = reservationOwner.Email, FirstName = reservationOwner.FirstName, LastName = reservationOwner.LastName, PhoneNumber = reservationOwner.PhoneNumber, TotalCost = reservation.TotalCost }; ReservationVehicleViewModel rvvm = new ReservationVehicleViewModel { ReservationVehicle = _vehicleRepository.GetVehicleById(reservation.VehicleId), Vehicles = _vehicleRepository.GetAllAvailableVehicles() }; ReservationViewModel rvm = new ReservationViewModel { InitialSetup = rlvm, VehicleSetup = rvvm, ReviewAndContactSetup = rcvm, CurrentUserId = reservation.ApplicationUserId, ConfirmationNumber = reservation.ConfirmationNumber }; SaveObjectToSession(rvm, "updatewizard"); SaveObjectToSession(reservation, "updatecancelwizard"); return(View(rvm)); }
public IViewComponentResult Invoke(ReservationContactViewModel rcvm) { return(View(rcvm)); }