Ejemplo n.º 1
0
        public UserControlItemCostByCategory(ItemChartCategory categories)
        {
            InitializeComponent();

            DataContext = categories;
            //PieChartCategories.DataContext = categories.SeriesCollection;
        }
Ejemplo n.º 2
0
        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());
        }