// GET api/paycheckbudgetapi public IEnumerable<PaycheckBudgetViewModel> Get() { var paycheckBudgets = _repo.FetchAll().ToList(); var paycheckBudgetViewModels = new List<PaycheckBudgetViewModel>(); foreach (var paycheckBudget in paycheckBudgets) { var items = _repo.FetchAllItemsForPaycheckBudget(paycheckBudget.PaycheckBudgetId).ToList(); var itemTotal = items.Sum(pbi => pbi.Amount); var vm = new PaycheckBudgetViewModel { PaycheckBudgetId = paycheckBudget.PaycheckBudgetId, Date = paycheckBudget.PaycheckBudgetDate.ToShortDateString(), Amount = paycheckBudget.PaycheckBudgetAmount, Remaining = paycheckBudget.PaycheckBudgetAmount - itemTotal, Items = items.Select(pbi => new PaycheckBudgetItemViewModel { PaycheckBudgetItemId = pbi.PaycheckBudgetItemId, PaycheckBudgetId = pbi.PaycheckBudgetId, Description = pbi.Description, Amount = pbi.Amount, DueDate = pbi.PaidDate.ToShortDateString(), PaidStatus = pbi.IsPaid, IsPaid = (pbi.IsPaid) ? "Paid" : "Unpaid" }) }; paycheckBudgetViewModels.Add(vm); } return paycheckBudgetViewModels; }
// GET api/paycheckbudgetapi/5 public PaycheckBudgetViewModel Get(int id) { var dbPaycheckBudget = _repo.FetchById(id); var items = _repo.FetchAllItemsForPaycheckBudget(id); var itemTotal = items.Sum(x => x.Amount); var vm = new PaycheckBudgetViewModel { PaycheckBudgetId = id, Date = dbPaycheckBudget.PaycheckBudgetDate.ToShortDateString(), Amount = dbPaycheckBudget.PaycheckBudgetAmount, Remaining = dbPaycheckBudget.PaycheckBudgetAmount - itemTotal, Items = items.Select(x => new PaycheckBudgetItemViewModel { PaycheckBudgetId = id, PaycheckBudgetItemId = x.PaycheckBudgetItemId, Description = x.Description, Amount = x.Amount, DueDate = x.PaidDate.ToShortDateString(), PaidStatus = x.IsPaid, IsPaid = (x.IsPaid) ? "Paid" : "Unpaid" }) }; return vm; }
// POST api/paycheckbudgetapi public void Post(PaycheckBudgetViewModel budgetViewModel) { var paycheckBudget = new PaycheckBudget { PaycheckBudgetId = budgetViewModel.PaycheckBudgetId, PaycheckBudgetAmount = budgetViewModel.Amount, PaycheckBudgetDate = Convert.ToDateTime(budgetViewModel.Date) }; var paycheckBudgetItems = budgetViewModel.Items.Select(x => new PaycheckBudgetItem { PaycheckBudgetId = x.PaycheckBudgetId, Amount = x.Amount, Description = x.Description, IsPaid = x.PaidStatus, PaidDate = Convert.ToDateTime(x.DueDate) }); _repo.Update(paycheckBudget); _repo.UpdateAll(paycheckBudget.PaycheckBudgetId, paycheckBudgetItems); }