/// <inheritdoc/> public async Task <UserDto> CreateAsync(UserRequest user) { if (string.IsNullOrWhiteSpace(user.Password)) { throw new AppException("Password is required"); } if (_context.Users.Any(x => x.Login == user.Login)) { throw new AppException("Username \"" + user.Login + "\" is already taken"); } user.Password = SecurePasswordHasher.HasFunction(user.Password); var userModel = new UserDto() { Login = user.Login, Password = user.Password }; _context.Users.Add(userModel); await _context.SaveChangesAsync(); var users = await _context.Users.FirstOrDefaultAsync(x => x.Login == user.Login); await _context.UserRoles.AddAsync(new UserRolesDto { UserId = users.Id, RoleIdRole = 1 }); await _context.SaveChangesAsync(); return(userModel); }
/// <inheritdoc/> public async Task <UserDto> ResetPasswordAsync(int id, string newPassword) { var user = await _context.Users.FirstOrDefaultAsync(x => x.Id == id); if (user == null) { throw new AppException("Не существует пользователя с таким идетификатором"); } user.Password = SecurePasswordHasher.HasFunction(newPassword); _context.Users.Update(user); await _context.SaveChangesAsync(); return(user); }