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> 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> NewCost(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }
            CapFundingRequest request = await _context.CapFundingRequests.SingleOrDefaultAsync(r => r.Id == id);

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

            StaggeredCostViewModel viewModel = new StaggeredCostViewModel
            {
                CapFundingRequest = request,
                StaggeredCosts    = _context.StaggeredCosts.Where(c => c.CapfundingRequestId == id)
                                    .OrderBy(c => c.FiscalYear).ToList(),
                StaggeredCost = new StaggeredCost()
            };

            return(View("StaggeredCostForm", viewModel));
        }