public ProviderPeriodEndSummaryModel GetMetrics() { var result = new ProviderPeriodEndSummaryModel { Ukprn = Ukprn, AcademicYear = AcademicYear, CollectionPeriod = CollectionPeriod, JobId = JobId, DcEarnings = GetDcEarnings(), HeldBackCompletionPayments = providerHeldBackCompletionPayments, PaymentMetrics = new ContractTypeAmountsVerbose(), Payments = GetPaymentTotals(), YearToDatePayments = providerPaymentsYearToDate, AlreadyPaidDataLockedEarnings = providerDataLockedAlreadyPaidTotal, AdjustedDataLockedEarnings = providerDataLockedEarnings - providerDataLockedAlreadyPaidTotal, TotalDataLockedEarnings = providerDataLockedEarnings, FundingSourceAmounts = GetFundingSourceAmounts(), TransactionTypeAmounts = GetTransactionTypeAmounts(), DataLockTypeCounts = periodEndProviderDataLockTypeCounts }; result.PaymentMetrics = Helpers.CreatePaymentMetrics(result); result.Percentage = result.PaymentMetrics.Percentage; return(result); }
private void SendProviderMetricsTelemetry(ProviderPeriodEndSummaryModel providerMetrics, PeriodEndSummaryModel overallMetrics) { var properties = new Dictionary <string, string> { { TelemetryKeys.JobId, providerMetrics.JobId.ToString() }, { TelemetryKeys.CollectionPeriod, overallMetrics.CollectionPeriod.ToString() }, { TelemetryKeys.AcademicYear, overallMetrics.AcademicYear.ToString() }, { TelemetryKeys.Ukprn, providerMetrics.Ukprn.ToString() }, }; var act1FundingSource = providerMetrics .FundingSourceAmounts .Where(x => x.ContractType == ContractType.Act1) .ToList(); var act2FundingSource = providerMetrics .FundingSourceAmounts .Where(x => x.ContractType == ContractType.Act2) .ToList(); var act1TransactionTypes = providerMetrics .TransactionTypeAmounts .Where(x => x.TransactionTypeAmounts.ContractType == ContractType.Act1) .ToList(); var act2TransactionTypes = providerMetrics .TransactionTypeAmounts .Where(x => x.TransactionTypeAmounts.ContractType == ContractType.Act2) .ToList(); var stats = new Dictionary <string, double> { { "Percentage", (double)providerMetrics.PaymentMetrics.Percentage }, { "PercentageContractType1", (double)providerMetrics.PaymentMetrics.PercentageContractType1 }, { "PercentageContractType2", (double)providerMetrics.PaymentMetrics.PercentageContractType2 }, { "Total", (double)providerMetrics.PaymentMetrics.Total }, { "ContractType1", (double)providerMetrics.PaymentMetrics.ContractType1 }, { "ContractType2", (double)providerMetrics.PaymentMetrics.ContractType2 }, { "DifferenceTotal", (double)providerMetrics.PaymentMetrics.DifferenceTotal }, { "DifferenceContractType1", (double)providerMetrics.PaymentMetrics.DifferenceContractType1 }, { "DifferenceContractType2", (double)providerMetrics.PaymentMetrics.DifferenceContractType2 }, { "EarningsDCTotal", (double)providerMetrics.DcEarnings.Total }, { "EarningsDCContractType1", (double)providerMetrics.DcEarnings.ContractType1 }, { "EarningsDCContractType2", (double)providerMetrics.DcEarnings.ContractType2 }, { "PaymentsTotal", (double)providerMetrics.Payments.Total }, { "PaymentsContractType1", (double)providerMetrics.Payments.ContractType1 }, { "PaymentsContractType2", (double)providerMetrics.Payments.ContractType2 }, { "DataLockedEarnings", (double)providerMetrics.AdjustedDataLockedEarnings }, { "AlreadyPaidDataLockedEarnings", (double)providerMetrics.AlreadyPaidDataLockedEarnings }, { "TotalDataLockedEarnings", (double)providerMetrics.TotalDataLockedEarnings }, { "HeldBackCompletionPaymentsTotal", (double)providerMetrics.HeldBackCompletionPayments.Total }, { "HeldBackCompletionPaymentsContractType1", (double)providerMetrics.HeldBackCompletionPayments.ContractType1 }, { "HeldBackCompletionPaymentsContractType2", (double)providerMetrics.HeldBackCompletionPayments.ContractType2 }, { "PaymentsYearToDateTotal", (double)providerMetrics.YearToDatePayments.Total }, { "PaymentsYearToDateContractType1", (double)providerMetrics.YearToDatePayments.ContractType1 }, { "PaymentsYearToDateContractType2", (double)providerMetrics.YearToDatePayments.ContractType2 }, { "ContractType1FundingSourceTotal", (double)act1FundingSource.Sum(x => x.Total) }, { "ContractType1FundingSource1", (double)act1FundingSource.Sum(x => x.FundingSource1) }, { "ContractType1FundingSource2", (double)act1FundingSource.Sum(x => x.FundingSource2) }, { "ContractType1FundingSource3", (double)act1FundingSource.Sum(x => x.FundingSource3) }, { "ContractType1FundingSource4", (double)act1FundingSource.Sum(x => x.FundingSource4) }, { "ContractType1FundingSource5", (double)act1FundingSource.Sum(x => x.FundingSource5) }, { "ContractType2FundingSourceTotal", (double)act2FundingSource.Sum(x => x.Total) }, { "ContractType2FundingSource1", (double)act2FundingSource.Sum(x => x.FundingSource1) }, { "ContractType2FundingSource2", (double)act2FundingSource.Sum(x => x.FundingSource2) }, { "ContractType2FundingSource3", (double)act2FundingSource.Sum(x => x.FundingSource3) }, { "ContractType2FundingSource4", (double)act2FundingSource.Sum(x => x.FundingSource4) }, { "ContractType2FundingSource5", (double)act2FundingSource.Sum(x => x.FundingSource5) }, { "ContractType1TransactionTypeTotal", (double)act1TransactionTypes.Sum(x => x.TransactionTypeAmounts.Total) }, { "ContractType1TransactionType01", (double)act1TransactionTypes.Sum(x => x.TransactionTypeAmounts.TransactionType1) }, { "ContractType1TransactionType02", (double)act1TransactionTypes.Sum(x => x.TransactionTypeAmounts.TransactionType2) }, { "ContractType1TransactionType03", (double)act1TransactionTypes.Sum(x => x.TransactionTypeAmounts.TransactionType3) }, { "ContractType1TransactionType04", (double)act1TransactionTypes.Sum(x => x.TransactionTypeAmounts.TransactionType4) }, { "ContractType1TransactionType05", (double)act1TransactionTypes.Sum(x => x.TransactionTypeAmounts.TransactionType5) }, { "ContractType1TransactionType06", (double)act1TransactionTypes.Sum(x => x.TransactionTypeAmounts.TransactionType6) }, { "ContractType1TransactionType07", (double)act1TransactionTypes.Sum(x => x.TransactionTypeAmounts.TransactionType7) }, { "ContractType1TransactionType08", (double)act1TransactionTypes.Sum(x => x.TransactionTypeAmounts.TransactionType8) }, { "ContractType1TransactionType09", (double)act1TransactionTypes.Sum(x => x.TransactionTypeAmounts.TransactionType9) }, { "ContractType1TransactionType10", (double)act1TransactionTypes.Sum(x => x.TransactionTypeAmounts.TransactionType10) }, { "ContractType1TransactionType11", (double)act1TransactionTypes.Sum(x => x.TransactionTypeAmounts.TransactionType11) }, { "ContractType1TransactionType12", (double)act1TransactionTypes.Sum(x => x.TransactionTypeAmounts.TransactionType12) }, { "ContractType1TransactionType13", (double)act1TransactionTypes.Sum(x => x.TransactionTypeAmounts.TransactionType13) }, { "ContractType1TransactionType14", (double)act1TransactionTypes.Sum(x => x.TransactionTypeAmounts.TransactionType14) }, { "ContractType1TransactionType15", (double)act1TransactionTypes.Sum(x => x.TransactionTypeAmounts.TransactionType15) }, { "ContractType1TransactionType16", (double)act1TransactionTypes.Sum(x => x.TransactionTypeAmounts.TransactionType16) }, { "ContractType2TransactionTypeTotal", (double)act2TransactionTypes.Sum(x => x.TransactionTypeAmounts.Total) }, { "ContractType2TransactionType01", (double)act2TransactionTypes.Sum(x => x.TransactionTypeAmounts.TransactionType1) }, { "ContractType2TransactionType02", (double)act2TransactionTypes.Sum(x => x.TransactionTypeAmounts.TransactionType2) }, { "ContractType2TransactionType03", (double)act2TransactionTypes.Sum(x => x.TransactionTypeAmounts.TransactionType3) }, { "ContractType2TransactionType04", (double)act2TransactionTypes.Sum(x => x.TransactionTypeAmounts.TransactionType4) }, { "ContractType2TransactionType05", (double)act2TransactionTypes.Sum(x => x.TransactionTypeAmounts.TransactionType5) }, { "ContractType2TransactionType06", (double)act2TransactionTypes.Sum(x => x.TransactionTypeAmounts.TransactionType6) }, { "ContractType2TransactionType07", (double)act2TransactionTypes.Sum(x => x.TransactionTypeAmounts.TransactionType7) }, { "ContractType2TransactionType08", (double)act2TransactionTypes.Sum(x => x.TransactionTypeAmounts.TransactionType8) }, { "ContractType2TransactionType09", (double)act2TransactionTypes.Sum(x => x.TransactionTypeAmounts.TransactionType9) }, { "ContractType2TransactionType10", (double)act2TransactionTypes.Sum(x => x.TransactionTypeAmounts.TransactionType10) }, { "ContractType2TransactionType11", (double)act2TransactionTypes.Sum(x => x.TransactionTypeAmounts.TransactionType11) }, { "ContractType2TransactionType12", (double)act2TransactionTypes.Sum(x => x.TransactionTypeAmounts.TransactionType12) }, { "ContractType2TransactionType13", (double)act2TransactionTypes.Sum(x => x.TransactionTypeAmounts.TransactionType13) }, { "ContractType2TransactionType14", (double)act2TransactionTypes.Sum(x => x.TransactionTypeAmounts.TransactionType14) }, { "ContractType2TransactionType15", (double)act2TransactionTypes.Sum(x => x.TransactionTypeAmounts.TransactionType15) }, { "ContractType2TransactionType16", (double)act2TransactionTypes.Sum(x => x.TransactionTypeAmounts.TransactionType16) }, }; telemetry.TrackEvent($"Finished Generating Period End Metrics for Provider: {providerMetrics.Ukprn}", properties, stats); }