Beispiel #1
0
        private IList <GetPmsSummaryReportResponse.KpiData> SetPillarAndTotalScoreColor(IList <GetPmsSummaryReportResponse.KpiData> kpiDatas, PmsSummaryScoringIndicator pillarScoringIndicators, PmsSummaryScoringIndicator totalScoreScoringIndicators)
        {
            IDictionary <string, double?[]> totalPillar = new Dictionary <string, double?[]>();
            var groupedPillars = kpiDatas.GroupBy(x => x.Pillar);

            foreach (var groupedPillar in groupedPillars)
            {
                double?totalScore    = null;
                var    notNullPillar = groupedPillar.Where(x => x.Score.HasValue).ToList();
                if (notNullPillar.Count > 0)
                {
                    totalScore = 0;
                }

                foreach (var item in notNullPillar)
                {
                    if (item.Score.HasValue)
                    {
                        totalScore += item.Score.Value;
                    }
                }

                totalPillar.Add(groupedPillar.Key, new double?[] { totalScore, groupedPillar.First().PillarWeight });
            }

            double?allTotalScore = null;

            if (totalPillar.Count > 0)
            {
                allTotalScore = 0;
            }

            foreach (var tp in totalPillar)
            {
                if (tp.Value[0].HasValue && tp.Value[1].HasValue)
                {
                    allTotalScore += tp.Value[0] / 100 * tp.Value[1];
                }
                var kpiWithPillars = kpiDatas.Where(x => x.Pillar == tp.Key).ToList();
                foreach (var kpiWithPillar in kpiWithPillars)
                {
                    kpiWithPillar.PillarColor = GetScoreColor(tp.Value[0], pillarScoringIndicators.ScoreIndicators);
                }
            }

            return(kpiDatas.Select(x =>
            {
                x.TotalScoreColor = GetScoreColor(allTotalScore, totalScoreScoringIndicators.ScoreIndicators);
                return x;
            }).ToList());
        }
Beispiel #2
0
        private IList<GetPmsSummaryReportResponse.KpiData> SetPillarAndTotalScoreColor(IList<GetPmsSummaryReportResponse.KpiData> kpiDatas, PmsSummaryScoringIndicator pillarScoringIndicators, PmsSummaryScoringIndicator totalScoreScoringIndicators)
        {
            IDictionary<string, double?[]> totalPillar = new Dictionary<string, double?[]>();
            var groupedPillars = kpiDatas.GroupBy(x => x.Pillar);
            foreach (var groupedPillar in groupedPillars)
            {
                double? totalScore = null;
                var notNullPillar = groupedPillar.Where(x => x.Score.HasValue).ToList();
                if (notNullPillar.Count > 0)
                    totalScore = 0;

                foreach (var item in notNullPillar)
                {
                    if (item.Score.HasValue)
                    {
                        totalScore += item.Score.Value;
                    }
                }

                totalPillar.Add(groupedPillar.Key, new double?[] { totalScore, groupedPillar.First().PillarWeight });
            }

            double? allTotalScore = null;
            if (totalPillar.Count > 0)
                allTotalScore = 0;

            foreach (var tp in totalPillar)
            {
                if (tp.Value[0].HasValue && tp.Value[1].HasValue)
                {
                    allTotalScore += tp.Value[0] / 100 * tp.Value[1];
                }
                var kpiWithPillars = kpiDatas.Where(x => x.Pillar == tp.Key).ToList();
                foreach (var kpiWithPillar in kpiWithPillars)
                {
                    kpiWithPillar.PillarColor = GetScoreColor(tp.Value[0], pillarScoringIndicators.ScoreIndicators);
                }
            }

            return kpiDatas.Select(x =>
            {
                x.TotalScoreColor = GetScoreColor(allTotalScore, totalScoreScoringIndicators.ScoreIndicators);
                return x;
            }).ToList();
        }