예제 #1
0
        public IActionResult Login(LoginViewModel loginViewModel)
        {
            if (!ModelState.IsValid)
            {
                return(View(loginViewModel));
            }
            IList <string> errors = new List <string>();
            SellerView     seller = loginPersistence.PersistLogin();

            if (seller == null)
            {
                if (EmailValidationService.IsValidEmail(loginViewModel.LoginInformation.Username))
                {
                    seller = eCommerce.GetSellerBy(loginViewModel.LoginInformation.Username);
                    if (seller != null)
                    {
                        if (seller.Status == SellerStatus.Active)
                        {
                            string encryptedPassword = eCommerce.GetSellerEncryptedPassword(int.Parse(seller.Id));
                            if (EncryptionService.Encrypt(loginViewModel.LoginInformation.Password) == encryptedPassword)
                            {
                                loginPersistence.LoginThrough(loginViewModel.LoginInformation.Username, loginViewModel.LoginInformation.Remember);
                            }
                            else
                            {
                                errors.Add("Wrong password");
                            }
                        }
                        else
                        {
                            switch (seller.Status)
                            {
                            case SellerStatus.Locked: errors.Add("Account was locked"); break;

                            case SellerStatus.Validating: errors.Add("Account are waiting for validating"); break;
                            }
                        }
                    }
                    else
                    {
                        errors.Add("Email not found");
                    }
                }
                else
                {
                    errors.Add("Invalid email address");
                }
            }
            else
            {
                return(Redirect(loginViewModel.ReturnUrl));
            }

            if (errors.Any())
            {
                ViewData[GlobalViewBagKeys.Errors] = errors;
                return(View(loginViewModel));
            }
            return(Redirect(loginViewModel.ReturnUrl));
        }
예제 #2
0
        public IActionResult Login(LoginViewModel loginViewModel)
        {
            if (!ModelState.IsValid)
            {
                return(View(loginViewModel));
            }
            IList <string> errors = new List <string>();
            AdminView      admin  = loginPersistence.PersistLogin();

            if (admin == null)
            {
                if (EmailValidationService.IsValidEmail(loginViewModel.LoginInformation.Username))
                {
                    admin = eCommerce.GetAdminBy(loginViewModel.LoginInformation.Username);
                    if (admin != null)
                    {
                        string encryptedPassword = eCommerce.GetAdminEncryptedPassword(int.Parse(admin.Id));
                        if (EncryptionService.Encrypt(loginViewModel.LoginInformation.Password) == encryptedPassword)
                        {
                            loginPersistence.LoginThrough(loginViewModel.LoginInformation.Username, loginViewModel.LoginInformation.Remember);
                        }
                        else
                        {
                            errors.Add("Wrong password");
                        }
                    }
                    else
                    {
                        errors.Add("Email not found");
                    }
                }
                else
                {
                    errors.Add("Invalid email address");
                }
            }
            else
            {
                return(Redirect(loginViewModel.ReturnUrl));
            }

            if (errors.Any())
            {
                ViewBag.LoginErrors = errors;
                return(View(loginViewModel));
            }
            return(Redirect(loginViewModel.ReturnUrl));
        }