public async Task <ActionResult <string> > Login(Common.Api.Request.User loginUser) { var usersFound = await context.Users.Where(u => u.Email == loginUser.Email).ToListAsync(); switch (usersFound.Count) { case 0: return(NotFound($"Can't find user with email: {loginUser.Email}.")); case 1: if (usersFound.First().Password == EncryptPassword(loginUser.Password)) { usersFound.First().Logged = true; await context.SaveChangesAsync(); return(Ok(token.Generate(usersFound.First().UserId, usersFound.First().Email, usersFound.First().Role))); } else { return(Unauthorized()); } default: var admin = await context.Users.SingleOrDefaultAsync(u => u.Role == Common.User.UserRole.Admin); return(Conflict($"Multiple accounts error for email {loginUser.Email}. Please report this to {admin?.Email}.")); } }
public async Task <bool> LoginAsync(Common.Api.Request.User user) { var response = await HttpClient.PostAsJsonAsync(Common.ApiRoutes.Admin.Login, user); if (response.StatusCode == System.Net.HttpStatusCode.OK) { SetToken(await response.Content.ReadAsStringAsync()); return(true); } else { return(false); } }