private async Task <bool> IsUserInDatabase(string username) { using (DatabaseUserContext context = new DatabaseUserContext()) { var user = await context.Users.FirstOrDefaultAsync(u => u.Username == username); return(user != null); } }
public async Task <IEnumerable <LoginAttemptDTO> > GetAllLoginAttempts(string username) { using (DatabaseUserContext context = new DatabaseUserContext()) { var loginAttempts = context.LoginAttempts.Where(s => s.User.Username == username).Select(l => new LoginAttemptDTO { Username = l.User.Username, IsSuccessful = l.IsSuccessful, LoginTime = l.LoginTime }); return(await loginAttempts.ToListAsync()); } }
public async Task AddLoginAttempt(LoginAttemptDTO loginAttempt) { using (DatabaseUserContext context = new DatabaseUserContext()) { context.LoginAttempts.Add(new LoginAttempt() { IsSuccessful = loginAttempt.IsSuccessful, UserId = context.Users.First(u => u.Username == loginAttempt.Username).Id, LoginTime = loginAttempt.LoginTime }); await context.SaveChangesAsync(); } }
public async Task <UserDTO> GetUser(int id) { using (DatabaseUserContext context = new DatabaseUserContext()) { var user = await context.Users.FirstOrDefaultAsync(n => n.Id == id); return(user != null ? new UserDTO { Id = user.Id, LastName = user.LastName, Name = user.Name, Pesel = user.Pesel, Role = user.Role, Username = user.Username } : null); } }
private async Task <bool> HasUserValidRole(string username, string role) { using (DatabaseUserContext context = new DatabaseUserContext()) { var user = await context.Users.FirstAsync(u => u.Username == username); if (user.Role == "Doctor") { return(role == "Doctor" || role == "Patient"); } if (user.Role == "Pharmacist") { return(role == "Pharmacist" || role == "Patient"); } return(role == "Patient"); } }
public async Task <(string, int)> GetPasswordHash(string username, string role) { if (!await IsUserInDatabase(username)) { throw new ArgumentException("User not exist in database"); } if (!await HasUserValidRole(username, role)) { throw new ArgumentException("User has invalid role"); } using (DatabaseUserContext context = new DatabaseUserContext()) { var user = await context.Users.FirstAsync(u => u.Username == username); return(user.PasswordHash, user.Id); } }
public async Task <IEnumerable <UserDTO> > GetUsers(string name, string lastName, string pesel, string role, string username) { using (DatabaseUserContext context = new DatabaseUserContext()) { return(await context.Users .Where(u => (role == "" || u.Role == role) && (name == "" || u.Name == name) && (lastName == "" || u.LastName == lastName) && (pesel == "" || u.Pesel == pesel) && (username == "" || u.Username == username)) .Select(n => new UserDTO { Id = n.Id, LastName = n.LastName, Name = n.Name, Pesel = n.Pesel, Role = n.Role, Username = n.Username }).ToListAsync()); } }