public async Task <GetProviderAccountLegalEntitiesQueryResponse> Handle(GetProviderAccountLegalEntitiesQuery request, CancellationToken cancellationToken) { var response = await _apiClient.Get <GetProviderAccountLegalEntitiesResponse>( new GetProviderAccountLegalEntitiesRequest(request.Ukprn)); return(new GetProviderAccountLegalEntitiesQueryResponse { ProviderAccountLegalEntities = response.AccountProviderLegalEntities }); }
public async Task <AccountLegalEntityItem> GetAccountLegalEntity(AccountIdentifier accountIdentifier, string accountLegalEntityPublicHashedId) { switch (accountIdentifier.AccountType) { case AccountType.Provider: var providerResponse = await _providerRelationshipsApiClient.Get <GetProviderAccountLegalEntitiesResponse>( new GetProviderAccountLegalEntitiesRequest(accountIdentifier.Ukprn)); if (providerResponse == null) { return(null); } var legalEntityItem = providerResponse.AccountProviderLegalEntities .FirstOrDefault(c => c.AccountLegalEntityPublicHashedId.Equals( accountLegalEntityPublicHashedId, StringComparison.CurrentCultureIgnoreCase)); if (legalEntityItem != null) { return(new AccountLegalEntityItem { Name = legalEntityItem.AccountLegalEntityName, AccountLegalEntityPublicHashedId = legalEntityItem.AccountLegalEntityPublicHashedId, AccountHashedId = legalEntityItem.AccountHashedId }); } else { return(null); } case AccountType.Employer: var resourceListResponse = await _accountsApiClient.Get <AccountDetail>( new GetAllEmployerAccountLegalEntitiesRequest(accountIdentifier.AccountHashedId)); if (resourceListResponse == null) { return(null); } foreach (var legalEntity in resourceListResponse.LegalEntities) { var legalEntityResponse = await _accountsApiClient.Get <GetEmployerAccountLegalEntityItem>( new GetEmployerAccountLegalEntityRequest(legalEntity.Href)); if (legalEntityResponse.AccountLegalEntityPublicHashedId.Equals(accountLegalEntityPublicHashedId, StringComparison.CurrentCultureIgnoreCase)) { return(new AccountLegalEntityItem { Name = legalEntityResponse.AccountLegalEntityName, AccountLegalEntityPublicHashedId = legalEntityResponse.AccountLegalEntityPublicHashedId, AccountHashedId = accountIdentifier.AccountHashedId }); } } return(null); default: return(null); } }