private IEnumerable <CoreProvider> CreateApprenticeshipProvidersRoatp(ProviderSourceDto source) { foreach (var courseDirectoryProvider in source.CourseDirectoryProviders.Providers) { CoreProvider provider; var roatpProvider = new RoatpProviderResult(); var providerFromRoatp = false; var ukrlpProvider = source.UkrlpProviders.MatchingProviderRecords.FirstOrDefault(x => x.UnitedKingdomProviderReferenceNumber == courseDirectoryProvider.Ukprn.ToString()); foreach (var roatpProviderResult in source.RoatpProviders) { if (roatpProviderResult.Ukprn == courseDirectoryProvider.Ukprn.ToString() && roatpProviderResult.ProviderType == ProviderType.MainProvider && roatpProviderResult.IsDateValid()) { providerFromRoatp = true; roatpProvider = roatpProviderResult; } } if (!providerFromRoatp) { continue; } provider = _courseDirectoryProviderMapper.Map(courseDirectoryProvider); provider.CurrentlyNotStartingNewApprentices = roatpProvider.NotStartingNewApprentices; provider.LegalName = ukrlpProvider?.ProviderName; provider.IsEmployerProvider = source.EmployerProviders.Providers.Contains(provider.Ukprn.ToString()); provider.IsHigherEducationInstitute = source.HeiProviders.Providers.Contains(provider.Ukprn.ToString()); provider.HasNonLevyContract = false; //roatpProvider.ContractedForNonLeviedEmployers; provider.HasParentCompanyGuarantee = roatpProvider.ParentCompanyGuarantee; provider.IsNew = roatpProvider.NewOrganisationWithoutFinancialTrackRecord; provider.IsLevyPayerOnly = !source.ActiveProviders.Providers.Contains(courseDirectoryProvider.Ukprn); var byProvidersFiltered = source.AchievementRateProviders.Rates.Where(bp => bp.Ukprn == provider.Ukprn); provider.Frameworks.ForEach(m => _providerDataService.UpdateFramework(m, source.Frameworks, byProvidersFiltered, source.AchievementRateNationals)); provider.Standards.ForEach(m => _providerDataService.UpdateStandard(m, source.Standards, byProvidersFiltered, source.AchievementRateNationals)); _providerDataService.SetLearnerSatisfactionRate(source.LearnerSatisfactionRates, provider); _providerDataService.SetEmployerSatisfactionRate(source.EmployerSatisfactionRates, provider); _providerDataService.SetProviderFeedback(source.ProviderFeedback, provider); yield return(provider); } }
public void ShouldCheckIfTheDateIsValid(int?start, int?end, bool expected) { DateTime? startDate = ConvertDate(start); DateTime? endDate = ConvertDate(end); RoatpProviderResult roatpProvider = new RoatpProviderResult { StartDate = startDate, EndDate = endDate }; Assert.AreEqual(expected, roatpProvider.IsDateValid()); }