public override async Task <RequestResult <AuthorizationData> > Handle(LoginUserWithCredentialsCommand request,
                                                                               CancellationToken cancellationToken)
        {
            var user = await _authRepository.GetUserByCredentials(request.Email, request.Password,
                                                                  request.RequestContext.Tenant.TenantId);

            if (user == null)
            {
                return(RequestResult <AuthorizationData> .Failure(ErrorCode.UserNotFound,
                                                                  new { email = request.Email, tenantCode = request.RequestContext.Tenant.TenantCode }));
            }

            var settings = await _tenantsRepository.GetTenantSettings(request.RequestContext.Tenant.TenantId);

            if (settings == null)
            {
                return(RequestResult <AuthorizationData> .Failure(ErrorCode.TenantSettingsNotFound,
                                                                  new { tenantCode = request.RequestContext.Tenant.TenantCode }));
            }

            var token = _jwtTokenFactory.Create(user, settings, request.RequestContext.Tenant.TenantCode);

            return(RequestResult <AuthorizationData>
                   .Success(new AuthorizationData
            {
                Token = token,
                User = _mapper.Map <UserDto>(user)
            }));
        }
Esempio n. 2
0
        private async Task <AuthorizationData> GetAuthorizationData(TenantContext requestTenant, TenantUser user)
        {
            var tenantSettings = await _tenantsRepository.GetTenantSettings(requestTenant.TenantId);

            var token = _jwtTokenFactory.Create(user, tenantSettings, requestTenant.TenantCode);

            return(new AuthorizationData
            {
                Token = token,
                User = _mapper.Map <UserDto>(user),
            });
        }