private void SetFundingLineOnPublishedProvider(string fundingLineCode, Table table, PublishedProvider publishedProvider) { publishedProvider .Should() .NotBeNull(); FundingLine fundingLine = publishedProvider.Current.FundingLines.SingleOrDefault(f => f.FundingLineCode == fundingLineCode && f.Type == FundingLineType.Payment); fundingLine .Should() .NotBeNull($"funding line should exist with code '{fundingLineCode}'"); List <DistributionPeriod> distributionPeriods = new List <DistributionPeriod>(); if (fundingLine.DistributionPeriods.AnyWithNullCheck()) { distributionPeriods.AddRange(fundingLine.DistributionPeriods); } distributionPeriods.AddRange(table.CreateSet <DistributionPeriod>()); fundingLine.DistributionPeriods = distributionPeriods; }
private void SetProfilePeriodsOnPublishedProvider(string fundingLineCode, Table table, PublishedProvider publishedProvider) { publishedProvider .Should() .NotBeNull(); FundingLine fundingLine = publishedProvider.Current.FundingLines.SingleOrDefault(f => f.FundingLineCode == fundingLineCode && f.Type == FundingLineType.Payment); fundingLine .Should() .NotBeNull($"funding line should exist with code '{fundingLineCode}'"); Dictionary <string, DistributionPeriod> distributionPeriods = new Dictionary <string, DistributionPeriod>(); if (fundingLine.DistributionPeriods.AnyWithNullCheck()) { foreach (DistributionPeriod distributionPeriod in fundingLine.DistributionPeriods) { distributionPeriods.Add(distributionPeriod.DistributionPeriodId, distributionPeriod); } } IEnumerable <ProfilePeriod> profilePeriods = table.CreateSet <ProfilePeriod>(); foreach (ProfilePeriod profilePeriod in profilePeriods) { distributionPeriods .Should() .ContainKey(profilePeriod.DistributionPeriodId, "expected distribution period to exist to add profile to"); DistributionPeriod distributionPeriod = distributionPeriods[profilePeriod.DistributionPeriodId]; List <ProfilePeriod> profilePeriodsForDistributionPeriod = new List <ProfilePeriod>(); if (distributionPeriod.ProfilePeriods.AnyWithNullCheck()) { profilePeriodsForDistributionPeriod.AddRange(distributionPeriod.ProfilePeriods); } profilePeriodsForDistributionPeriod.Add(profilePeriod); distributionPeriod.ProfilePeriods = profilePeriodsForDistributionPeriod; } _publishFundingStepContext.ProfilingInMemoryClient.AddFundingValueProfileSplit( (fundingLine.Value, publishedProvider.Current.FundingStreamId, publishedProvider.Current.FundingPeriodId, fundingLine.FundingLineCode, profilePeriods.Select(_ => new Common.ApiClient.Profiling.Models.ProfilingPeriod { DistributionPeriod = _.DistributionPeriodId, Occurrence = _.Occurrence, Type = _.Type.ToString(), Period = _.TypeValue, Value = _.ProfiledValue, Year = _.Year }), distributionPeriods.Values.Select(_ => new Common.ApiClient.Profiling.Models.DistributionPeriods { DistributionPeriodCode = _.DistributionPeriodId, Value = _.Value }))); }