Example #1
0
        private async Task <Provider> GetProviderFromUkprn(int ukprn)
        {
            Provider provider;
            OrganisationSearchResult searchResult = null;

            try
            {
                searchResult = await _roatpApiClient.GetOrganisationByUkprn(ukprn);
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, $"Unable to get Provider from AssessmentOrgsApi. Ukprn: {ukprn}");
            }

            if (searchResult is null)
            {
                // see if we can get it from Organisation Table
                var org = await _organisationQueryRepository.GetByUkPrn(ukprn);

                if (org != null)
                {
                    provider = new Provider {
                        ProviderName = org.EndPointAssessorName, Ukprn = ukprn
                    };
                }
                else
                {
                    // see whether there are any previous certificates with this ukrpn and a ProviderName....
                    var previousProviderName = await _certificateRepository.GetPreviousProviderName(ukprn);

                    provider = new Provider {
                        ProviderName = previousProviderName ?? "Unknown", Ukprn = ukprn
                    };
                }
            }
            else
            {
                provider = new Provider {
                    ProviderName = searchResult.ProviderName, Ukprn = ukprn
                };
            }

            return(provider);
        }