public async Task <BellwetherUser> FindByEmailAsync(StringValues userEmail) { BellwetherUser result = null; if (userEmail.Count >= 1) { result = await _readOnlyUnitOfWork.GetRepository <BellwetherUser>().Query().FirstOrDefaultAsync(x => x.Email.ToLower() == userEmail[0].ToLower()); } return(result); }
private static async void SeedUser(string name, string surname, string email, string password, UserType userType, IPasswordCryptoService passwordCryptoService, BellwetherContext bellwetherContext) { var salt = passwordCryptoService.GenerateSalt(); var passwordHash = passwordCryptoService.HashPassword(password, salt); var user = BellwetherUser.Create(Guid.NewGuid(), name, surname, email, passwordHash, salt, userType); await bellwetherContext.Set <BellwetherUser>().AddAsync(user); }
public async Task <bool> CheckPasswordAsync(BellwetherUser user, StringValues password) { var result = false; if (password.Count >= 1) { result = await _passwordCryptoService.IsCorrectAsync(password[0], user.Password, user.Salt); } if (result) { user.UpdateLastLoginDate(); await _unitOfWork.GetRepository <BellwetherUser>().SaveChangesAsync(); } return(result); }
private async Task Handle(RegisterUserCommand command) { await HandleCommand(command, async uow => { var userRepository = uow.GetRepository <BellwetherUser>(); var salt = _passwordCryptoService.GenerateSalt(); var passwordHash = _passwordCryptoService.HashPassword(command.Password, salt); var user = BellwetherUser.Create(Guid.NewGuid(), command.Name, command.Surname, command.Email, passwordHash, salt, UserType.Client); userRepository.Add(user); await userRepository.SaveChangesAsync(); }); }