public async Task <ActionResult <UserToken> > LoginUserAsync(LoginViewModel model) { UserToken userToken = new UserToken(); var user = await userManager.FindByNameAsync(model.Username); if (user != null) { var result = await signInManager.PasswordSignInAsync(model.Username, model.Password, false, true); var loginLog = new LogForLogin { UserName = user.FullName, UserId = user.Id, Ip_Address = httpContextAccessor.HttpContext.Connection.RemoteIpAddress.ToString(), TimeStamp = DateTime.Now, }; if (result.Succeeded) { loginLog.StatusFlag = 1; await supportSecurity.InsertLogIntoLoginAsync(loginLog); var role = await userManager.GetRolesAsync(user); var userInfo = new UserInfo { Email = user.Email, Name = user.FullName, Username = model.Username, Roles = role }; userToken = supportSecurity.BuildToken(userInfo); userToken.Status = "success"; return(userToken); } else { loginLog.StatusFlag = 0; await supportSecurity.InsertLogIntoLoginAsync(loginLog); userToken.Status = "Invalid Login Attempt"; } if (result.IsLockedOut) { string message = "Your account is locked, please try again after sometime or you may reset your password."; userToken.Status = message; } } else { userToken.Status = "You have to register yourself with us!"; } return(userToken); }
public async Task <int> InsertLogIntoLoginAsync(LogForLogin model) { dbContext.LogTableForLogin.Add(model); return(await dbContext.SaveChangesAsync()); }