public ActionResult Edit(int id)
        {
            MitigationViewModel vm = new MitigationViewModel();

            vm.RiskMitigation = db.RiskMitigations.Where(p => p.MitigationId == id).FirstOrDefault();

            vm.MitigationCats  = new SelectList(db.MitigationCats, "MitigationCatId", "MitigationCatName", vm.RiskMitigation.MitigationCatId);
            vm.MitigationTypes = new SelectList(db.MitigationTypes.Where(p => p.MitigationCatId == vm.RiskMitigation.MitigationCatId), "MitigationTypeId", "MitigationTypeName", vm.RiskMitigation.MitigationTypeId);

            Dictionary <int, string> probList = new Dictionary <int, string>();

            foreach (var item in db.ProbLevels)
            {
                probList.Add(item.ProbLevelId, item.ProbLevelId + " - " + item.ProbLevelName);
            }
            vm.ProbLevels = new SelectList(probList, "Key", "Value", vm.RiskMitigation.ProbLevelId);

            Dictionary <int, string> impactList = new Dictionary <int, string>();

            foreach (var item in db.ImpactLevels)
            {
                impactList.Add(item.ImpactLevelId, item.ImpactLevelId + " - " + item.ImpactLevelName);
            }
            vm.ImpactLevels = new SelectList(impactList, "Key", "Value", vm.RiskMitigation.ImpactLevelId);

            return(View(vm));
        }
        public ActionResult Edit(MitigationViewModel vm)
        {
            if (ModelState.IsValid)
            {
                var lastMitigation = vm.RiskMitigation;

                var mitigation = db.RiskMitigations.Single(r => r.MitigationId == vm.RiskMitigation.MitigationId);

                mitigation.MitigationDate   = lastMitigation.MitigationDate;
                mitigation.MitigationCatId  = lastMitigation.MitigationCatId;
                mitigation.MitigationTypeId = lastMitigation.MitigationTypeId;
                mitigation.ProbLevelId      = lastMitigation.ProbLevelId;
                mitigation.ImpactLevelId    = lastMitigation.ImpactLevelId;
                mitigation.MitigationName   = lastMitigation.MitigationName;

                db.SaveChanges();
            }

            return(RedirectToAction("List", new { id = vm.RiskMitigation.RiskId }));
        }
        public ActionResult New(MitigationViewModel vm)
        {
            if (ModelState.IsValid)
            {
                vm.Risk = db.Risks.Where(p => p.RiskId == vm.RiskMitigation.RiskId).FirstOrDefault();
                vm.RiskMitigation.RiskLevel   = vm.RiskMitigation.ProbLevelId * vm.RiskMitigation.ImpactLevelId;
                vm.RiskMitigation.DeptId      = vm.Risk.DeptId;
                vm.RiskMitigation.SubDeptId   = vm.Risk.SubDeptId;
                vm.RiskMitigation.DivisionId  = vm.Risk.DivisionId;
                vm.RiskMitigation.SubDivId    = vm.Risk.SubDivId;
                vm.RiskMitigation.BranchId    = vm.Risk.BranchId;
                vm.RiskMitigation.SubBranchId = vm.Risk.SubBranchId;
                vm.RiskMitigation.BizUnitId   = vm.Risk.BizUnitId;
                db.RiskMitigations.Add(vm.RiskMitigation);
                db.SaveChanges();

                Utils.CreateFirstMitigationApprovalSchedule(vm.RiskMitigation);
                db.SaveChanges();

                return(RedirectToAction("List", new { id = vm.RiskMitigation.RiskId }));
            }
            return(View(vm));
        }
        public ActionResult New(int id)
        {
            var vm = new MitigationViewModel
            {
                Risk = db.Risks.Where(r => r.RiskId == id).FirstOrDefault()
            };

            vm.MitigationCats  = new SelectList(db.MitigationCats, "MitigationCatId", "MitigationCatName");
            vm.MitigationTypes = new SelectList(Enumerable.Empty <SelectListItem>(), "MitigationTypeId", "MitigationTypeName");

            Dictionary <int, string> probList = new Dictionary <int, string>();

            foreach (var item in db.ProbLevels)
            {
                probList.Add(item.ProbLevelId, item.ProbLevelId + " - " + item.ProbLevelName);
            }
            vm.ProbLevels = new SelectList(probList, "Key", "Value");

            Dictionary <int, string> impactList = new Dictionary <int, string>();

            foreach (var item in db.ImpactLevels)
            {
                impactList.Add(item.ImpactLevelId, item.ImpactLevelId + " - " + item.ImpactLevelName);
            }
            vm.ImpactLevels = new SelectList(impactList, "Key", "Value");

            vm.RiskMitigation                = new RiskMitigation();
            vm.RiskMitigation.RiskId         = id;
            vm.RiskMitigation.RiskCode1      = vm.Risk.RiskCode;
            vm.RiskMitigation.MitigationCode = Utils.CreateNewMitigationCode(id);
            vm.RiskMitigation.InputDate      = DateTime.Now;
            vm.RiskMitigation.MitigationDate = DateTime.Now;
            vm.RiskMitigation.OrgPos         = vm.Risk.OrgPos;

            return(View(vm));
        }