public async Task <OperationResult <UserDataResponse> > GetUserByCredentialsAsync( GetUserByCredentialsRequest request, CancellationToken cancellationToken = default(CancellationToken)) { var response = await _mediator.Send(request, cancellationToken) .ConfigureAwait(false); return(response); }
public async Task <OperationResult <UserDataResponse> > Handle(GetUserByCredentialsRequest message, CancellationToken cancellationToken) { using (var context = _companyContextFactory()) { var username = message.Username.ToUpper(); var userDb = await context.Users.AsNoTracking() .SingleOrDefaultAsync(x => username == x.Username.ToUpper(), cancellationToken) .ConfigureAwait(false); if (userDb == null) { return(OperationResultBuilder.CreateFailure <UserDataResponse>(Resources.Exception_Authorization_Username_Not_Found)); } if (!_passwordHasher.VerifyPasswordHash(message.Password, userDb.PasswordHash)) { return(OperationResultBuilder.CreateFailure <UserDataResponse>(Resources.Authorization_Message_Validation_Errors)); } var response = _mapper.Map <UserDataResponse>(userDb); return(OperationResultBuilder.CreateSuccess(response)); } }