/// <summary> /// Creates a chart where the result of the calculation is displayed /// </summary> /// <param name="averageIncomes">Average of income per month</param> /// <param name="averageExpenses">Average of expense per month</param> public void CreateCalculationReport(decimal averageIncomes, decimal averageExpenses) { decimal balance; decimal calcBalance; // first clear the series LineChart.Series = new List <Series>(); LineChart.SeriesCollection = new SeriesCollection(); // get the actual balance as the startin amount using (var db = new DataModel()) { balance = db.AccountBalance .First(ab => ab.AccountID == MainViewModel.CurrentAccount.AccountID) .Balance .GetValueOrDefault(); } calcBalance = balance; // set the start date to the first day of the month var startDate = new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1).AddMonths(1); Console.WriteLine("Report:\nStart date: {0}", startDate); // get the average expense of the calculated data decimal averageCalcExpenses = CalculationResult.Sum(cr => cr.Limit); Console.WriteLine("Average income: {0}\nAverage expense: {1}\nCalculated expense: {2}", averageIncomes, averageExpenses, averageCalcExpenses); ChartValues <double> normalBalance = new ChartValues <double>(); ChartValues <double> calculatedBalance = new ChartValues <double>(); List <string> labels = new List <string>(); for (var i = startDate; i <= CalculationFilter.DueDate; i = i.AddMonths(1)) { labels.Add(i.ToString("yyyy MMMM")); normalBalance.Add((double)balance); calculatedBalance.Add((double)calcBalance); balance += averageIncomes - averageExpenses; calcBalance += averageIncomes - averageCalcExpenses; } LineChart.Labels = labels.ToArray(); LineChart.Series.Add(new LineSeries { Title = "Egyenleg alakulása", Values = normalBalance }); LineChart.Series.Add(new LineSeries { Title = "Egyenleg alakulása kalkulációval", Values = calculatedBalance }); LineChart.SeriesCollection.AddRange(LineChart.Series); }