Exemplo n.º 1
0
        public ActionResult Login(LoginViewModel model)
        {
            var jsonViewModel = new AjaxLoginViewModel();

            try
            {
                string json     = JsonConvert.SerializeObject(model);
                var    endpoint = url;
                jsonViewModel = Utilities.RestAPIHelper <AjaxLoginViewModel> .Submit(json, Method.POST, endpoint);

                if (jsonViewModel.Data != null)
                {
                    jsonViewModel.SetValuesLogin(true, jsonViewModel.BearerToken, jsonViewModel.Data, "Login");
                }
                else
                {
                    jsonViewModel.SetValuesLogin(false, jsonViewModel.BearerToken, jsonViewModel.Data, jsonViewModel.Message);
                }
            }
            catch (Exception ex)
            {
                jsonViewModel.SetValuesLogin(false, "", null, String.Format("Failed\\nMessage: {0}", ex.GetBaseException().Message));
            }
            return(Json(jsonViewModel));
        }
Exemplo n.º 2
0
        public ActionResult AjaxLogin(AjaxLoginViewModel model, string returnUrl)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    if (!Request.IsAjaxRequest())
                    {
                        return(View());
                    }

                    return(Json(new
                    {
                        update_section = new UpdateSectionJsonModel
                        {
                            name = "login-form",
                            html = this.RenderPartialViewToString("AjaxLogin", model)
                        }
                        // goto_section = "shipping_method"
                    }));
                }

                // This doesn't count login failures towards account lockout
                // To enable password failures to trigger account lockout, change to shouldLockout: true
                var loginResult = _customerService.ValidateCustomer(model.AjaxEmail, model.AjaxPassword);
                switch (loginResult)
                {
                case CustomerLoginResults.Successful:
                {
                    var customer = _customerService.GetCustomerByEmail(model.AjaxEmail);

                    //migrate shopping cart
                    _workContext.CurrentCustomer = customer;

                    customer.LastActivityDateUtc = DateTime.UtcNow;
                    customer.LastLoginDateUtc    = DateTime.UtcNow;

                    _customerService.UpdateCustomer(customer);

                    //sign in new customer
                    _authenticationService.SignIn(customer, model.AjaxRememberMe);

                    GutterCleanRequestModel Requestmodel = _httpContext.Session["GutterCleanRequestModel"] as GutterCleanRequestModel;
                    if (Requestmodel == null)
                    {
                        return(Json(new { redirect = Url.RouteUrl("GutterCleanRequest") }));
                    }
                    else
                    {
                        return(Json(new { redirect = Url.RouteUrl("ProcessPayment") }));
                    }
                }

                case CustomerLoginResults.CustomerNotExist:
                    ModelState.AddModelError("", "Customer Not Exist");
                    break;

                case CustomerLoginResults.NotActive:
                    ModelState.AddModelError("", "Customer Not Active");
                    break;

                case CustomerLoginResults.NotRegistered:
                    ModelState.AddModelError("", "Not Registered");
                    break;

                case CustomerLoginResults.WrongPassword:
                default:
                    ModelState.AddModelError("", "Wrong Credentials");
                    break;
                }

                //If we got this far, something failed, redisplay form
                return(Json(new { error = 1, message = "" }));
            }
            catch (Exception exc)
            {
                return(Json(new { error = 1, message = exc.Message }));
            }

            return(View());
        }