Ejemplo n.º 1
0
        // GET: Charts
        public JsonResult GetCategoryChartData()
        {
            var dataVM = new CatDataVM();

            var householdId = db.Users.Find(User.Identity.GetUserId()).HouseholdId;

            foreach (var category in db.Categories.Where(c => c.HouseholdId == householdId).ToList())
            {
                //Now that I have a Category I need all the category Items
                var catData = new BarChartData
                {
                    Name   = category.Name,
                    Target = category.TargetAmount,
                };



                foreach (var item in db.Categories.Find(category.Id).CategoryItems.ToList())
                {
                    var transactions = db.Transactions.Where(t => t.CategoryItemId == item.Id).ToList();

                    if (transactions.Count > 0)
                    {
                        catData.Actual += transactions.Sum(t => t.Amount);
                    }
                }

                dataVM.Data.Add(catData);
            }
            dataVM.Labels.AddRange(new List <string> {
                "Name", "Target", "Actual"
            });
            return(Json(dataVM));
        }
Ejemplo n.º 2
0
        // GET: Charts
        public JsonResult GetCategoryChartData()
        {
            var colorList = new List <string>();

            colorList.Add("#886896");
            colorList.Add("#d2d6de");

            var catDataVM   = new CatDataVM();
            var householdId = db.Users.Find(User.Identity.GetUserId()).HouseholdId;

            foreach (var category in db.Categories.Where(c => c.HouseholdId == householdId).ToList())
            {
                var catData = new CategoryDataVM
                {
                    Name   = category.Name,
                    Target = category.TargetAmount
                };

                foreach (var item in db.Categories.Find(category.Id).CategoryItems.ToList())
                {
                    // This should be focused on the current month only!!!
                    // How do I work down the Transactions to only this month??
                    // Where(t = t.Created) is a good place to start
                    var transactions = db.Transactions.Where(t => t.CategoryItemId == item.Id).ToList();
                    if (transactions.Count > 0)
                    {
                        catData.Actual += transactions.Sum(t => t.Amount);
                    }
                }

                catDataVM.Data.Add(catData);
                catDataVM.Colors.AddRange(colorList);
            }

            catDataVM.Labels.AddRange(new List <string> {
                "Target", "Actual", "Name"
            });

            return(Json(catDataVM));
        }