public ActionResult Dashboard() { var userId = User.Identity.GetUserId(); if (User.IsInRole("Guest") || !houseHelp.IsHouseholdConfigured(userId)) { return(View(new DashboardVM())); } ; var user = db.Users.Where(u => u.Id == userId).FirstOrDefault(); var houseId = (int)user.HouseholdId; var lastTrans = db.Transactions.OrderByDescending(t => t.Created).FirstOrDefault(t => t.OwnerId == userId); var dashboard = new DashboardVM { BankBalance = db.BankAccounts.Where(bA => bA.OwnerId == userId).Sum(x => x.CurrentBalance), BudgetTotal = db.Budgets.Where(b => b.HouseholdId == houseId).SelectMany(b => b.BudgetItems).Sum(x => x.TargetAmount), LastTransaction = lastTrans != null ? lastTrans.Amount : 0, }; ViewBag.BankAccountId = new SelectList(db.BankAccounts.Where(b => b.OwnerId == userId), "Id", "Name"); ViewBag.BankAccountFrom = new SelectList(db.BankAccounts.Where(b => b.OwnerId == userId), "Id", "Name"); ViewBag.BankAccountTo = new SelectList(db.BankAccounts.Where(b => b.OwnerId == userId), "Id", "Name"); ViewBag.BudgetItemId = new SelectList(db.Budgets.Where(b => b.HouseholdId == houseId).SelectMany(b => b.BudgetItems), "Id", "Name"); ViewBag.Transactions = db.Transactions.Where(t => t.OwnerId == userId).ToList(); return(View(dashboard)); }