public async Task <int> Add(UserRequest userRequest) { User user = userRequest.ToEntity();; if (user.Role != Role.Admin && user.Role != Role.Client) { throw new InvalidOperationException("New user should have either Admin or Client role."); } if (userRequest.Id == 0) { user.Password = HashPassword.GetHashString(user.Password); this.context.Users.Add(user); } else { User dbUser = await this.context.Users.SingleAsync(u => u.Id == userRequest.Id); dbUser.Name = user.Name; dbUser.Email = user.Email; dbUser.Role = user.Role; dbUser.IsActive = user.IsActive; this.context.Users.Update(dbUser); } await this.context.SaveChangesAsync(); return(user.Id); }
public async Task <UserResponse> Authenticate(string username, string password) { User user = await this.context.Users.SingleOrDefaultAsync(u => u.Email == username); if (user == null) { return(null); } if (user.Password == HashPassword.GetHashString(password)) { var response = new UserResponse(user); return(response); } return(null); }