public UpdateExternalApiCheckDetailsRequest(Guid applicationId, ApplyGatewayDetails applyGatewayDetails, string userId, string userName) { ApplicationId = applicationId; ApplyGatewayDetails = applyGatewayDetails; UserId = userId; UserName = userName; }
private async Task LookupCompaniesHouseDetails(ApplyGatewayDetails applyGatewayDetails, string companyNumber) { var companyDetails = await _companiesHouseApiClient.GetCompany(companyNumber); if (companyDetails == null) { var message = $"Unable to retrieve Companies House details for company number {companyNumber}"; _logger.LogError(message); throw new ServiceUnavailableException(message); } applyGatewayDetails.CompaniesHouseDetails = Mapper.Map <CompaniesHouseSummary>(companyDetails.Response); }
private async Task LookupCharityCommissionDetails(ApplyGatewayDetails applyGatewayDetails, string charityNumberFromUkrlp) { if (int.TryParse(charityNumberFromUkrlp, out var charityNumber)) { var charityDetails = await _charityCommissionClient.GetCharity(charityNumber); if (charityDetails == null) { var message = $"Unable to retrieve Charity Commission details for charity number {charityNumber}"; _logger.LogError(message); throw new ServiceUnavailableException(message); } applyGatewayDetails.CharityCommissionDetails = Mapper.Map <CharityCommissionSummary>(charityDetails); } }
public async Task <ApplyGatewayDetails> GetExternalApiCheckDetails(Guid applicationId) { var applyGatewayDetails = new ApplyGatewayDetails(); var ukprn = await _qnaApiClient.GetQuestionTag(applicationId, RoatpWorkflowQuestionTags.UKPRN); var ukrlpResults = await _roatpApiClient.GetUkrlpDetails(ukprn); if (ukrlpResults == null) { var message = $"Unable to retrieve UKRLP details for application {applicationId}"; _logger.LogError(message); throw new ServiceUnavailableException(message); } var ukrlpDetails = ukrlpResults.Results.FirstOrDefault(); applyGatewayDetails.UkrlpDetails = Mapper.Map <ProviderDetails>(ukrlpDetails); var roatpStatus = await _roatpApiClient.GetOrganisationRegisterStatus(ukprn); if (roatpStatus == null) { var message = $"Unable to retrieve RoATP register details for application {applicationId}"; _logger.LogError(message); throw new ServiceUnavailableException(message); } applyGatewayDetails.RoatpRegisterDetails = roatpStatus; var companiesHouseVerification = ukrlpDetails.VerificationDetails .FirstOrDefault(x => x.VerificationAuthority == VerificationAuthorities.CompaniesHouseAuthority); if (companiesHouseVerification != null) { await LookupCompaniesHouseDetails(applyGatewayDetails, companiesHouseVerification.VerificationId); } var charityCommissionVerification = ukrlpDetails.VerificationDetails .FirstOrDefault(x => x.VerificationAuthority == VerificationAuthorities.CharityCommissionAuthority); if (charityCommissionVerification != null) { await LookupCharityCommissionDetails(applyGatewayDetails, charityCommissionVerification.VerificationId); } applyGatewayDetails.SourcesCheckedOn = DateTime.Now; return(applyGatewayDetails); }
private async Task LookupCompaniesHouseDetails(ApplyGatewayDetails applyGatewayDetails, string companyNumber) { ApiResponse <Types.CompaniesHouse.Company> companyDetails = null; try { companyDetails = await _companiesHouseApiClient.GetCompany(companyNumber); } catch (Exception ex) { var message = $"Unable to retrieve results from companies house for company number {companyNumber}"; _logger.LogError(message, ex); throw new ServiceUnavailableException(message); } if (string.IsNullOrEmpty(companyDetails?.Response?.CompanyName)) { var message = $"Unable to retrieve Companies House details for company number {companyNumber}"; _logger.LogError(message); throw new ServiceUnavailableException(message); } applyGatewayDetails.CompaniesHouseDetails = Mapper.Map <CompaniesHouseSummary>(companyDetails.Response); }
private async Task LookupCharityCommissionDetails(ApplyGatewayDetails applyGatewayDetails, string charityNumberFromUkrlp) { if (!int.TryParse(charityNumberFromUkrlp, out var charityNumber)) { var message = $"Charity registration number cannot be parsed into a number, skipping getting details from charity commission for '{ charityNumberFromUkrlp}'"; _logger.LogInformation(message); return; } try { var charityDetails = await _outerApiClient.GetCharityDetails(charityNumber); applyGatewayDetails.CharityCommissionDetails = Mapper.Map <CharityCommissionSummary>(charityDetails); } catch (Exception ex) { var message = $"Unable to retrieve Charity Commission details for charity number {charityNumber} based on charity number from uklrp: {charityNumberFromUkrlp}"; _logger.LogError(ex, message); throw new ServiceUnavailableException(message); } }