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));
        }
示例#5
0
 public IViewComponentResult Invoke(ReservationContactViewModel rcvm)
 {
     return(View(rcvm));
 }