BudgetAnalyser.Engine.Services.BudgetPieGraphService.PrepareExpenseGraphData C# (CSharp) Метод

PrepareExpenseGraphData() публичный Метод

Prepares the expense graph data.
public PrepareExpenseGraphData ( [ budget ) : decimal>.IDictionary
budget [
Результат decimal>.IDictionary
        public IDictionary<string, decimal> PrepareExpenseGraphData([NotNull] BudgetModel budget)
        {
            if (budget == null)
            {
                throw new ArgumentNullException(nameof(budget));
            }

            var surplus = new Expense { Amount = budget.Surplus, Bucket = this.budgetBucketRepository.SurplusBucket };
            List<KeyValuePair<string, decimal>> interim =
                budget.Expenses.Select(expense => new KeyValuePair<string, decimal>(expense.Bucket.Code, expense.Amount))
                    .ToList();
            interim.Add(new KeyValuePair<string, decimal>(surplus.Bucket.Code, surplus.Amount));
            return interim.OrderByDescending(x => x.Value).ToDictionary(e => e.Key, e => e.Value);
        }