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);
        }
Ejemplo n.º 2
0
        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);
        }