public IEnumerable <ProviderLocations> FindAllProvidersLocations(List <int> providerUkprns)
        {
            List <ProviderLocations> providerlocations = new List <ProviderLocations>();

            dynamic providers = GetProvidersFromCourseDirectory();

            _frameworksfromApi  = frameworkApiClient.FindAll();
            _standardsfromApi   = standardApiClient.FindAll();
            _inspectionOutcomes = _inspectionOutcomeClient.GetOfstedInspectionOutcomes().InspectionOutcomes;
            var providersfromApi = providerApiClient.FindAll().ToList();

            foreach (var provider in providers)
            {
                foreach (var ukprn in providerUkprns)
                {
                    if (provider.ukprn == ukprn)
                    {
                        var providerlocation = new ProviderLocations
                        {
                            Ukprn = ukprn, TrainingLocations = new List <TrainingLocation>(), Frameworks = new List <ProviderApprenticeship>(), Standards = new List <ProviderApprenticeship>()
                        };

                        //Add Provider name
                        AddProviderName(providersfromApi, providerlocation);

                        //Add Provider locations
                        AddTrainingLocations(provider.locations, providerlocation.TrainingLocations);

                        //Add framework offered by provider
                        AddFrameworks(provider.frameworks, providerlocation.Frameworks);

                        //Add standard offered by provider
                        AddStandards(provider.standards, providerlocation.Standards);

                        //Add OverallEffectiveness report by Ofsted
                        AddOverallEffectiveness(providerlocation);

                        //Add a provider to the list of providers
                        providerlocations.Add(providerlocation);
                    }
                }
            }
            return(Verifyproviders(providersfromApi, providerlocations));
        }
 private void AddProviderName(List <ProviderSummary> providersfromApi, ProviderLocations providerlocation)
 {
     providerlocation.Name = providersfromApi.Single(x => x.Ukprn == providerlocation.Ukprn).ProviderName;
 }
        private void AddOverallEffectiveness(ProviderLocations providerlocation)
        {
            var inspectionOutcome = _inspectionOutcomes.FirstOrDefault(x => x.Ukprn == providerlocation.Ukprn);

            providerlocation.OverallEffectiveness = inspectionOutcome?.OverallEffectiveness;
        }