public async Task <IActionResult> SaveCost(StaggeredCostViewModel costViewModel)
        {
            StaggeredCost objStaggeredCost = costViewModel.StaggeredCost;

            if (objStaggeredCost.Id == 0)
            {
                objStaggeredCost.CapfundingRequestId = costViewModel.CapFundingRequest.Id;

                await _context.StaggeredCosts.AddAsync(objStaggeredCost);
            }
            else
            {
                StaggeredCost costInDb = await _context.StaggeredCosts.SingleAsync(c => c.Id == costViewModel.StaggeredCost.Id);

                costInDb.FiscalYear          = costViewModel.StaggeredCost.FiscalYear;
                costInDb.Amount              = costViewModel.StaggeredCost.Amount;
                costInDb.AmtJustification    = costViewModel.StaggeredCost.AmtJustification;
                costInDb.DescOfActivity      = costViewModel.StaggeredCost.DescOfActivity;
                costInDb.CapfundingRequestId = costViewModel.StaggeredCost.CapfundingRequestId;
            }

            await _context.SaveChangesAsync();

            return(RedirectToAction(nameof(Details), new { costViewModel.CapFundingRequest.Id }));
        }
        public async Task <IActionResult> EditStagCost(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }
            StaggeredCost staggeredCost = await _context.StaggeredCosts.SingleOrDefaultAsync(s => s.Id == id);

            CapFundingRequest request = await _context.CapFundingRequests.SingleOrDefaultAsync(r => r.Id == staggeredCost.CapfundingRequestId);

            //TempData["requestId"] = staggeredCost.CapfundingRequestId;

            if (staggeredCost == null)
            {
                return(NotFound());
            }
            else
            {
                StaggeredCostViewModel viewModel = new StaggeredCostViewModel
                {
                    CapFundingRequest = request,
                    StaggeredCost     = staggeredCost,
                    StaggeredCosts    = await _context.StaggeredCosts.Where(c => c.CapfundingRequestId == staggeredCost.CapfundingRequestId)
                                        .OrderBy(c => c.FiscalYear).ToListAsync()
                };

                return(View("StaggeredCostForm", viewModel));
            }
        }
        public async Task <IActionResult> CostDetail(int id)
        {
            StaggeredCost cost = await _context.StaggeredCosts.SingleOrDefaultAsync(c => c.Id == id);

            var debugVar = cost.CapfundingRequestId;

            return(View(cost));
        }
        public async Task <IActionResult> DeleteStagCost(int id)
        {
            StaggeredCost staggeredCost = await _context.StaggeredCosts.FirstOrDefaultAsync(s => s.Id == id);

            //get the parent object so we can redirect to the
            //appropriate view since it errors out on a redirect to action
            CapFundingRequest request = await _context.CapFundingRequests.SingleOrDefaultAsync(r => r.Id == staggeredCost.CapfundingRequestId);

            _context.StaggeredCosts.Remove(staggeredCost);
            await _context.SaveChangesAsync();

            object viewModel = await CreateViewModel(request);

            return(View("FundingRequestReview", viewModel));
        }
        // GET: StaggeredCost/Delete/
        public async Task <IActionResult> DeleteStagCost(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            StaggeredCost staggeredCost = await _context.StaggeredCosts.SingleOrDefaultAsync(s => s.Id == id);

            if (staggeredCost == null)
            {
                return(NotFound());
            }

            return(View(staggeredCost));
        }