public async Task <GetByEmailAccountDto?> Handle( GetByEmailAccountQuery request, CancellationToken token) { var accountDomain = await _accountQueries .GetByEmail( request.CorrelationToken, request.Email, token); if (accountDomain == null) { return(null); } if (Equals( accountDomain .AccountStatus, AccountStatusType.AddressVerificationRequired)) { return(new GetByEmailAccountDto( accountDomain.Id, (AccountStatusEnum)accountDomain.Id, accountDomain.Email, null)); } var address = await _addressQueries .GetByProvinceId( request.CorrelationToken, accountDomain.ProvinceId, token); if (address == null) { throw new AppException( "An error has occurred. " + "We are working on a solution to it. " + "You can find out the status by ticket: " + $"{request.CorrelationToken}"); } return(new GetByEmailAccountDto( accountDomain.Id, (AccountStatusEnum)accountDomain.Id, accountDomain.Email, new GetByEmailAccountAddressDto( address.CountryId, address.CountryTitle, address.ProvinceId, address.ProvinceTitle))); }