public ActionResult Delete(Budget budget)
 {
     try
     {
         repository.DeleteBudget(budget);
         return RedirectToAction("Index");
     }
     catch
     {
         return View();
     }
 }
        public Budget AddBudget(int userId, DateTime date)
        {
            var query = from budget in context.Budgets
                        where budget.UserId == userId && budget.Date == date
                        select budget;

            if (query.Any<Budget>())
                throw new BudgetAlreadyExistsException();

            Budget newBudget = new Budget { UserId = userId, Date = date };

            newBudget = context.Budgets.Add(newBudget);
            SaveChanges();
            return newBudget;
        }
        public ActionResult Edit(Budget model)
        {
            if (ModelState.IsValid)
            {
                model.EarnedIncome += model.AddEarnedIncomeAmount;
                model.PassiveIncome += model.AddPassiveIncomeAmount;
                model.Investments += model.AddInvenstmentAmount;
                repository.UpdateBudget(model);
                return RedirectToAction("Details", new { id = model.BudgetId });
            }

            return View(model);
        }
 public void UpdateBudget(Budget budget)
 {
     Budget budgetToUpdate = GetBudget(budget.BudgetId);
     budgetToUpdate.EarnedIncome = budget.EarnedIncome;
     budgetToUpdate.PassiveIncome = budget.PassiveIncome;
     budgetToUpdate.Investments = budget.Investments;
     SaveChanges();
 }
 public void DeleteBudget(Budget budget)
 {
     context.Budgets.Attach(budget);
     context.Budgets.Remove(budget);
     SaveChanges();
 }