public RedirectResult BillingAddressSameAsShippingAddress(bool sameAsShipping)
        {
            _cartManager.SetBillingAddressSameAsShippingAddress(sameAsShipping);

            SetSettingBillingAddress(sameAsShipping);
            return(Redirect(UniquePageHelper.GetUrl <PaymentDetails>()));
        }
예제 #2
0
        public ActionResult Show(UserAccountPage page)
        {
            ViewData["message"] = TempData["message"];

            if (CurrentRequestData.CurrentUser != null)
            {
                return(View(page));
            }

            return(Redirect(UniquePageHelper.GetUrl <LoginPage>()));
        }
예제 #3
0
        public ActionResult UserAccountOrders(int page = 1)
        {
            var user = CurrentRequestData.CurrentUser;

            if (user != null)
            {
                var ordersByUser = _orderService.GetOrdersByUser(user, page);
                var model        = new UserAccountOrdersModel(new PagedList <Order>(ordersByUser, ordersByUser.PageNumber, ordersByUser.PageSize), user.Id);
                return(View(model));
            }
            return(Redirect(UniquePageHelper.GetUrl <LoginPage>()));
        }
        public ActionResult Show(OrderPlaced page, [IoCModelBinder(typeof(OrderByGuidModelBinder))] Order order)
        {
            if (order != null)
            {
                ViewData["order"]             = order;
                ViewData["user-can-register"] = _orderPlacedService.GetRegistrationStatus(order.OrderEmail);
                ViewData["render-analytics"]  = _orderPlacedService.UpdateAnalytics(order);

                return(View(page));
            }
            return(Redirect(UniquePageHelper.GetUrl <ProductSearch>()));
        }
예제 #5
0
        public ActionResult UserAccountReviews(int page = 1)
        {
            var user = CurrentRequestData.CurrentUser;

            if (user != null)
            {
                var reviewsByUser = _productReviewUIService.GetReviewsByUser(user, page);

                var model = new UserAccountReviewsModel(new PagedList <ProductReview>(reviewsByUser, reviewsByUser.PageNumber, reviewsByUser.PageSize), user.Id);
                return(View(model));
            }
            return(Redirect(UniquePageHelper.GetUrl <LoginPage>()));
        }
예제 #6
0
        public ActionResult UserAccountDetails(UserAccountModel model)
        {
            User user = CurrentRequestData.CurrentUser;

            if (user != null)
            {
                model.FirstName = user.FirstName;
                model.LastName  = user.LastName;
                model.Email     = user.Email;
                ModelState.Clear();
                return(View(model));
            }
            return(Redirect(UniquePageHelper.GetUrl <LoginPage>()));
        }
예제 #7
0
        public ActionResult Notification(FormCollection form)
        {
            CharityClearResponse charityClearResponse = _charityClearPaymentService.HandleNotification(form);

            if (charityClearResponse.Success)
            {
                return
                    (new RedirectResult(
                         UniquePageHelper.GetAbsoluteUrl <OrderPlaced>(new { id = charityClearResponse.Order.Guid })));
            }

            TempData.ErrorMessages().AddRange(charityClearResponse.ErrorMessages);
            return(new RedirectResult(UniquePageHelper.GetAbsoluteUrl <PaymentDetails>()));
        }
예제 #8
0
        public RedirectResult ChangePassword_POST(ChangePasswordModel model)
        {
            if (ModelState.IsValid)
            {
                var user = CurrentRequestData.CurrentUser;
                _passwordManagementService.SetPassword(user, model.Password, model.ConfirmPassword);
                model.Message = _stringResourceProvider.GetValue("Login Password Updated", "Password updated.");
            }
            else
            {
                model.Message = _stringResourceProvider.GetValue("Login Invalid", "Please ensure both fields are filled out and valid");
            }

            TempData["message"] = model.Message;
            return(Redirect(UniquePageHelper.GetUrl <UserAccountPage>()));
        }
예제 #9
0
 public ActionResult Show(EnterOrderEmail page)
 {
     if (CurrentRequestData.CurrentUser == null)
     {
         if (!_cart.Items.Any())
         {
             return(Redirect(UniquePageHelper.GetUrl <Cart>()));
         }
         _cart.OrderEmail = _cart.OrderEmail ?? (CurrentRequestData.CurrentUser != null
                                                     ? CurrentRequestData.CurrentUser.Email
                                                     : null);
         ViewData["cart"] = _cart;
         return(View(page));
     }
     _cartManager.SetOrderEmail(CurrentRequestData.CurrentUser.Email);
     return(Redirect(UniquePageHelper.GetUrl <SetShippingDetails>()));
 }
예제 #10
0
        public ActionResult UserAccountOrder(UserOrder page, Guid id)
        {
            var user = CurrentRequestData.CurrentUser;

            if (user != null)
            {
                var order = _orderService.GetByGuid(id);

                if (order.User.Id != user.Id)
                {
                    return(Redirect(UniquePageHelper.GetUrl <LoginPage>()));
                }
                ViewData["Order"] = order;
                return(View(page));
            }
            return(Redirect(UniquePageHelper.GetUrl <LoginPage>()));
        }
예제 #11
0
        public async Task <RedirectResult> UserAccountDetails_POST(UserAccountModel model)
        {
            if (model != null && ModelState.IsValid)
            {
                var user = CurrentRequestData.CurrentUser;
                if (user != null && user.IsActive)
                {
                    user.FirstName = model.FirstName;
                    user.LastName  = model.LastName;
                    user.Email     = model.Email;
                    _userManagementService.SaveUser(user);
                    await _authorisationService.SetAuthCookie(user, false);

                    return(Redirect(UniquePageHelper.GetUrl <UserAccountPage>()));
                }
            }
            return(Redirect(UniquePageHelper.GetUrl <UserAccountPage>()));
        }
예제 #12
0
        public async Task <RedirectResult> RegistrationDetails_POST(RegisterModel model)
        {
            if (CurrentRequestData.CurrentUser != null)
            {
                TempData["already-logged-in"] = _stringResourceProvider.GetValue("Register Already Logged in", "You are already logged in. Please logout to create a new account.");
                return(Redirect(UniquePageHelper.GetUrl <RegisterPage>()));
            }

            if (model != null && ModelState.IsValid && _registrationService.CheckEmailIsNotRegistered(model.Email))
            {
                await _registrationService.RegisterUser(model);

                return(!string.IsNullOrEmpty(model.ReturnUrl)
                    ? Redirect("~/" + model.ReturnUrl)
                    : Redirect("~/"));
            }
            return(Redirect(UniquePageHelper.GetUrl <RegisterPage>()));
        }
예제 #13
0
        public ActionResult RegistrationWithoutDetails(RegisterWithoutDetailsModel model)
        {
            if (CurrentRequestData.CurrentUser != null)
            {
                return(Redirect(UniquePageHelper.GetUrl <ProductSearch>()));
            }

            if (model != null && ModelState.IsValid)
            {
                var existingUser = _userLookup.GetUserByEmail(model.Email);
                if (existingUser != null)
                {
                    return(Redirect(UniquePageHelper.GetUrl <ProductSearch>()));
                }


                var user = new User
                {
                    FirstName = String.Empty,
                    LastName  = String.Empty,
                    Email     = model.Email.Trim(),
                    IsActive  = true
                };

                _passwordManagementService.SetPassword(user, model.Password, model.Password);
                _userManagementService.AddUser(user);
                _authorisationService.SetAuthCookie(user, false);
                CurrentRequestData.CurrentUser = user;

                var order = _orderService.AssignUserToOrder(model.OrderId, user);
                if (order.BillingAddress != null)
                {
                    user.FirstName = order.BillingAddress.FirstName;
                    user.LastName  = order.BillingAddress.LastName;
                    _userManagementService.SaveUser(user);
                }

                return(Redirect(UniquePageHelper.GetUrl <UserAccountPage>()));
            }
            return(Redirect(UniquePageHelper.GetUrl <RegisterPage>()));
        }
        public ActionResult Show(PaymentDetails page)
        {
            if (_cart.RequiresShipping && (_cart.ShippingMethod == null || _cart.ShippingAddress == null))
            {
                return(Redirect(UniquePageHelper.GetUrl <SetShippingDetails>()));
            }
            if (string.IsNullOrWhiteSpace(_cart.OrderEmail))
            {
                return(Redirect(UniquePageHelper.GetUrl <EnterOrderEmail>()));
            }
            if (_cart.Empty)
            {
                return(Redirect(UniquePageHelper.GetUrl <Cart>()));
            }
            ViewData["cart"]    = _cart;
            ViewData["message"] = TempData["message"];

            ViewData["setting-billing-address"] = (TempData["setting-billing-address"] is bool &&
                                                   (bool)TempData["setting-billing-address"]) ||
                                                  (!_cart.BillingAddressSameAsShippingAddress &&
                                                   _cart.BillingAddress == null);

            return(View(page));
        }
예제 #15
0
        public async Task <RedirectResult> SetOrderEmailAndLogin(EmailAndLoginModel model)
        {
            if (model.HavePassword)
            {
                var user = _userService.GetUserByEmail(model.OrderEmail.Trim());
                if (user != null)
                {
                    var authenticated = await _loginService.AuthenticateUser(new LoginModel
                    {
                        Email    = user.Email,
                        Password = model.Password
                    });

                    if (authenticated.Success)
                    {
                        return(Redirect(UniquePageHelper.GetUrl <SetShippingDetails>()));
                    }
                }
                TempData.ErrorMessages().Add("There was an error logging in with the provided email and password");
                return(Redirect(UniquePageHelper.GetUrl <EnterOrderEmail>()));
            }
            _cartManager.SetOrderEmail(model.OrderEmail);
            return(Redirect(UniquePageHelper.GetUrl <SetShippingDetails>()));
        }
 public RedirectResult SaveBillingAddress(Address address)
 {
     _cartManager.SetBillingAddress(address);
     return(Redirect(UniquePageHelper.GetUrl <PaymentDetails>()));
 }
 public RedirectResult UpdateBillingAddress()
 {
     TempData["setting-billing-address"] = true;
     return(Redirect(UniquePageHelper.GetUrl <PaymentDetails>()));
 }
예제 #18
0
 public ActionResult SetOrderEmail(string orderEmail)
 {
     _cartManager.SetOrderEmail(orderEmail);
     return(Redirect(UniquePageHelper.GetUrl <SetShippingDetails>()));
 }