Example #1
0
        public async Task <OperationResult <UserDataResponse> > GetUserByCredentialsAsync(
            GetUserByCredentialsRequest request,
            CancellationToken cancellationToken = default(CancellationToken))
        {
            var response = await _mediator.Send(request, cancellationToken)
                           .ConfigureAwait(false);

            return(response);
        }
Example #2
0
        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));
            }
        }