public ActionResult Login(UserLogin model) { if (!ModelState.IsValid) { return(View(model)); } int valid = 0; User loginUser = _userFactory.AuthentiationLogin(model, ref valid); if (valid == 1 && loginUser.IsActive.Value) { // Set login session SetLoginState(loginUser); log.Info(string.Format("User {0} has logged at {1}", loginUser.UserName, DateTime.Now)); // Redirect to home page return(RedirectToAction("Index", "Home")); } else { ViewBag.Edit = true; model.ErrorMessage = "Login fail, please contact webmaster for more information"; switch (valid) { case 0: ModelState.AddModelError(string.Empty, "Invalid username or password"); log.Warn(string.Format("User {0} try to login at {1}", model.UserName, DateTime.Now)); break; case 2: ModelState.AddModelError(string.Empty, "User not active"); log.Warn(string.Format("Inactive user: {0} try to login at {1}", model.UserName, DateTime.Now)); break; case 3: ModelState.AddModelError(string.Empty, DSEConstant.Error_Message_Default); log.Error(string.Format("User: {0} try to login at {1} \n {2} ", model.UserName, DateTime.Now, loginUser.ErrorMessage)); break; } return(View(model)); } }