public UserControlItemCostByCategory(ItemChartCategory categories) { InitializeComponent(); DataContext = categories; //PieChartCategories.DataContext = categories.SeriesCollection; }
public List <ItemChartCategory> GetItensChartCategories() { List <ItemChartCategory> itemCharts = new List <ItemChartCategory>(); var groupedExpenses = (from e in Expenses group e by new { month = e.Date.Month, year = e.Date.Year } into d select new { dt = string.Format("{0}/{1}", d.Key.month, d.Key.year), count = d.Count() }).OrderByDescending(g => g.dt); foreach (var item in groupedExpenses) { var ic = itemCharts.Where(i => i.Date.Equals(DateTime.Parse("01/" + item.dt))).FirstOrDefault(); if (ic == null) { ic = new ItemChartCategory(item.dt); itemCharts.Add(ic); } List <string> groups = (from g in Expenses where g.Category != null && g.Date.Month.Equals(ic.Date.Month) && g.Date.Year.Equals(ic.Date.Year) select g.Category.Group).Distinct().ToList(); foreach (var group in groups) { var value = Expenses.Where(i => i.Category != null && i.Date.Month.Equals(ic.Date.Month) && i.Date.Year.Equals(ic.Date.Year) && i.Category.Group.Equals(group)).Sum(g => g.Value); ic.SetSeries(group, value); } } return(itemCharts.OrderByDescending(i => i.Date).ToList()); }