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)); }
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)); }