public ChartJSChartModel GetPieChart(List <Expense> expenses) { expenses = expenses.Where(e => e.SpentDate >= ExpenseSummaryTimePeriod.ThisMonth.GetStartDate() && e.SpentDate <= ExpenseSummaryTimePeriod.ThisMonth.GetEndDate().AddDays(1).AddSeconds(-1)).ToList(); var model = new ChartJSChartModel(); var categories = expenses.GroupBy(e => e.Category).OrderByDescending(e => e.Sum(e2 => e2.Amount)); foreach (var category in categories) { model.AddPoint(category.Key, category.Sum(e => e.Amount)); } return(model); }
public ChartJSChartModel GetLineChart(List <Income> income) { var today = DateTime.UtcNow.AddHours(-6).Date; var model = new ChartJSChartModel(); for (var x = 0; x < 12; x++) { var startDate = new DateTime(today.AddMonths(-x).Year, today.AddMonths(-x).Month, 1); var endDate = startDate.AddMonths(1).AddDays(-1); var monthName = today.AddMonths(-x).ToString("MMM"); var amount = GetTotalSpentAmount(income, startDate, endDate); model.AddPointBeginning(monthName, amount); } return(model); }