public void Build( GlobalFilterCriteria criteria, StatementModel statementModel, BudgetModel budgetModel, LedgerBook ledgerBookModel) { var beginDate = CalculateBeginDate(criteria); var dateRangeDescription = string.Format(CultureInfo.CurrentCulture, "For the month starting {0:D} to {1:D} inclusive.", beginDate, beginDate.AddMonths(1).AddDays(-1)); var listOfCharts = new List <BurnDownChartAnalyserResult>(this.budgetBucketRepository.Buckets.Count()); foreach (var bucket in this.budgetBucketRepository.Buckets .Where(b => b is ExpenseBucket && b.Active) .OrderBy(b => b.Code)) { var analysis = AnalyseDataForChart(statementModel, budgetModel, ledgerBookModel, bucket, beginDate); analysis.ChartTitle = string.Format(CultureInfo.CurrentCulture, "{0} Spending Chart", bucket.Code); listOfCharts.Add(analysis); } listOfCharts = listOfCharts.ToList(); // Put surplus at the top. var analysisResult = AnalyseDataForChart(statementModel, budgetModel, ledgerBookModel, this.budgetBucketRepository.SurplusBucket, beginDate); analysisResult.ChartTitle = string.Format(CultureInfo.CurrentCulture, "{0} Spending Chart", this.budgetBucketRepository.SurplusBucket); listOfCharts.Insert(0, analysisResult); // Put any custom charts on top. foreach (var customChart in CustomCharts) { IEnumerable <BudgetBucket> buckets = this.budgetBucketRepository.Buckets .Join(customChart.BucketIds, bucket => bucket.Code, code => code, (bucket, code) => bucket); var analysis = AnalyseDataForChart(statementModel, budgetModel, ledgerBookModel, buckets, beginDate); analysis.ChartTitle = customChart.Name; analysis.IsCustomAggregateChart = true; listOfCharts.Insert(0, analysis); } Results = new BurnDownCharts(beginDate, dateRangeDescription, listOfCharts); }
public void Build( GlobalFilterCriteria criteria, StatementModel statementModel, BudgetModel budgetModel, LedgerBook ledgerBookModel) { var beginDate = CalculateBeginDate(criteria); var dateRangeDescription = string.Format(CultureInfo.CurrentCulture, "For the month starting {0:D} to {1:D} inclusive.", beginDate, beginDate.AddMonths(1).AddDays(-1)); var listOfCharts = new List<BurnDownChartAnalyserResult>(this.budgetBucketRepository.Buckets.Count()); foreach (var bucket in this.budgetBucketRepository.Buckets .Where(b => b is ExpenseBucket && b.Active) .OrderBy(b => b.Code)) { var analysis = AnalyseDataForChart(statementModel, budgetModel, ledgerBookModel, bucket, beginDate); analysis.ChartTitle = string.Format(CultureInfo.CurrentCulture, "{0} Spending Chart", bucket.Code); listOfCharts.Add(analysis); } listOfCharts = listOfCharts.ToList(); // Put surplus at the top. var analysisResult = AnalyseDataForChart(statementModel, budgetModel, ledgerBookModel, this.budgetBucketRepository.SurplusBucket, beginDate); analysisResult.ChartTitle = string.Format(CultureInfo.CurrentCulture, "{0} Spending Chart", this.budgetBucketRepository.SurplusBucket); listOfCharts.Insert(0, analysisResult); // Put any custom charts on top. foreach (var customChart in CustomCharts) { IEnumerable<BudgetBucket> buckets = this.budgetBucketRepository.Buckets .Join(customChart.BucketIds, bucket => bucket.Code, code => code, (bucket, code) => bucket); var analysis = AnalyseDataForChart(statementModel, budgetModel, ledgerBookModel, buckets, beginDate); analysis.ChartTitle = customChart.Name; analysis.IsCustomAggregateChart = true; listOfCharts.Insert(0, analysis); } Results = new BurnDownCharts(beginDate, dateRangeDescription, listOfCharts); }