public async Task <string> AuthenticateAsync(string name, string password) { //validate name and password. if (string.IsNullOrWhiteSpace(name) || string.IsNullOrWhiteSpace(password)) { return(null); } //check if dealer exists. var dealer = await _dealerRepository.GetDealerByNameAsync(name); if (dealer == null) { return(null); } //verify password. if (!_authenticationProvider.VerifyPassword(password, dealer.PasswordHash, dealer.PasswordSalt)) { return(null); } return(_authenticationProvider.GenerateJWTToken(dealer)); }