/// <summary> /// Create a new RiskProb object. /// </summary> /// <param name="riskId">Initial value of the RiskId property.</param> /// <param name="probOption">Initial value of the ProbOption property.</param> public static RiskProb CreateRiskProb(global::System.Int32 riskId, global::System.Int32 probOption) { RiskProb riskProb = new RiskProb(); riskProb.RiskId = riskId; riskProb.ProbOption = probOption; return riskProb; }
/// <summary> /// Deprecated Method for adding a new object to the RiskProbs EntitySet. Consider using the .Add method of the associated ObjectSet<T> property instead. /// </summary> public void AddToRiskProbs(RiskProb riskProb) { base.AddObject("RiskProbs", riskProb); }
public ActionResult ProbEdit(RiskProb prob, int id) { if (ModelState.IsValid) { bool isOk = true; double? value = null; int probLevelId; switch (prob.ProbOption) { case Utils.PROBOPTION_POISSON: isOk = prob.Poisson1 != null && prob.Poisson2 != null; if (isOk) { value = (1 - poissondistr.poissondistribution(0, (double)prob.Poisson1 / (double)prob.Poisson2)) * 100; prob.Binom1 = null; prob.Binom2 = null; prob.Approx1 = null; prob.Approx2 = null; prob.Approx3 = null; prob.Compare = null; prob.FreqId = null; } break; case Utils.PROBOPTION_BINOMIAL: isOk = prob.Binom1 != null && prob.Binom2 != null; if (isOk) { value = (double)(1 - binomialdistr.binomialdistribution(0, (int)prob.Binom2, (double)prob.Binom1 / (double)prob.Binom2)) * 100; prob.Poisson1 = null; prob.Poisson2 = null; prob.Approx1 = null; prob.Approx2 = null; prob.Approx3 = null; prob.Compare = null; prob.FreqId = null; } break; case Utils.PROBOPTION_APPROXIMATION: isOk = prob.Approx1 != null && prob.Approx2 != null && prob.Approx3 != null; if (isOk) { value = ((double)prob.Approx1 + 4 * (double)prob.Approx2 + (double)prob.Approx3) / 6; prob.Poisson1 = null; prob.Poisson2 = null; prob.Binom1 = null; prob.Binom2 = null; prob.Compare = null; prob.FreqId = null; } break; case Utils.PROBOPTION_COMPARISON: isOk = prob.Compare != null; if (isOk) { value = (double)prob.Compare; prob.Poisson1 = null; prob.Poisson2 = null; prob.Binom1 = null; prob.Binom2 = null; prob.Approx1 = null; prob.Approx2 = null; prob.Approx3 = null; prob.FreqId = null; } break; case Utils.PROBOPTION_FREQUENCY: isOk = prob.FreqId != null; if (isOk) { prob.Poisson1 = null; prob.Poisson2 = null; prob.Binom1 = null; prob.Binom2 = null; prob.Approx1 = null; prob.Approx2 = null; prob.Approx3 = null; prob.Compare = null; } break; } if (isOk) { decimal? probValue = null; if (value != null) { probValue = Convert.ToDecimal(value); probLevelId = Utils.GetProbLevelFromValue((decimal)probValue); } else probLevelId = (int)prob.FreqId; prob.ProbValue = probValue; prob.ProbLevelId = probLevelId; db.RiskProbs.Attach(prob); db.ObjectStateManager.ChangeObjectState(prob, EntityState.Modified); Risk risk = db.Risks.Where(p => p.RiskId == id).SingleOrDefault(); risk.ProbValue = prob.ProbValue; risk.ProbLevelId = prob.ProbLevelId; Utils.CalcRiskLevel(risk); db.SaveChanges(); return RedirectToAction("ProbDetail", new { id = id }); } else { ModelState.AddModelError("", "Parameter untuk menghitung probabilitas tidak lengkap"); ViewBag.Freqs = new SelectList(db.Freqs.ToList(), "FreqId", "FreqName", prob.FreqId); return View(prob); } } return RedirectToAction("ProbDetail", new { id = id }); }
public ActionResult RiskNew(RiskEditViewModel vm) { UserData data = Utils.LoadUserDataFromSession(); bool saved = true; if (ModelState.IsValid) { if (vm.Risk.CauseGroupId != null && vm.Risk.CauseId == null) { ModelState.AddModelError("", "Sebab Risiko harus diisi lengkap atau kosong sama sekali"); saved = false; } if (vm.Risk.EffectGroupId != null && vm.Risk.EffectId == null) { ModelState.AddModelError("", "Akibat Risiko harus diisi lengkap atau kosong sama sekali"); saved = false; } if (vm.Risk.RiskCatId != null && vm.Risk.RiskTypeId == null) { ModelState.AddModelError("", "Klasifikasi Risiko harus diisi lengkap atau kosong sama sekali"); saved = false; } if (saved) { try { using (TransactionScope trans = new TransactionScope()) { Risk risk = new Risk(); risk.UserId = data.UserId; risk.JobTitle = data.JobTitle; risk.RiskCode = Utils.GetFormattedSerialNumber(data); risk.RiskName = vm.Risk.RiskName; risk.RiskDate = vm.Risk.RiskDate; risk.OrgPos = data.OrgPos; risk.DeptId = data.DeptId; risk.SubDeptId = data.SubDeptId; risk.DivisionId = data.DivisionId; risk.SubDivId = data.SubDivId; risk.BranchId = data.BranchId; risk.SubBranchId = data.SubBranchId; risk.BizUnitId = data.BizUnitId; if (vm.Risk.CauseId != null) { risk.CauseGroupId = vm.Risk.CauseGroupId; risk.CauseTypeId = vm.Risk.CauseTypeId; risk.CauseId = vm.Risk.CauseId; } if (vm.Risk.EffectId != null) { risk.EffectGroupId = vm.Risk.EffectGroupId; risk.EffectTypeId = vm.Risk.EffectTypeId; risk.EffectId = vm.Risk.EffectId; } if (vm.Risk.RiskTypeId != null) { risk.RiskCatId = vm.Risk.RiskCatId; risk.RiskGroupId = vm.Risk.RiskGroupId; risk.RiskTypeId = vm.Risk.RiskTypeId; } risk.ProbLevelId = Utils.PROBLEVEL1; risk.ImpactLevelId = Utils.IMPACTLEVEL1; risk.RiskLevel = risk.ProbLevelId * risk.ImpactLevelId; risk.IsReadOnly = false; db.Risks.AddObject(risk); db.SaveChanges(); RiskProb prob = new RiskProb(); prob.RiskId = risk.RiskId; prob.ProbOption = Utils.PROBOPTION_FREQUENCY; prob.FreqId = Utils.FREQUENCY1; prob.ProbLevelId = Utils.PROBLEVEL1; db.RiskProbs.AddObject(prob); db.SaveChanges(); RiskImpact impact = new RiskImpact(); impact.RiskId = risk.RiskId; impact.IsMoneyImpact = true; impact.ImpactLevelId = Utils.IMPACTLEVEL1; db.RiskImpacts.AddObject(impact); db.SaveChanges(); Utils.CreateFirstApprovalSchedule(risk.RiskId); Utils.IncrementSerialNumber(db); trans.Complete(); return RedirectToAction("RiskDetail", new { id = risk.RiskId }); } } catch (Exception e) { ModelState.AddModelError("", "Tidak bisa menyimpan data risiko. Error: " + e.Message); } } } vm.Risk.RiskCode = Utils.GetFormattedSerialNumber(data); vm.CauseGroups = new SelectList(db.CauseGroups, "CauseGroupId", "CauseGroupName"); vm.CauseTypes = new SelectList(db.CauseTypes.Where(p => p.CauseGroupId == vm.Risk.CauseGroupId), "CauseTypeId", "CauseTypeName"); vm.Causes = new SelectList(db.Causes.Where(p => p.CauseTypeId == vm.Risk.CauseTypeId), "CauseId", "CauseName"); vm.EffectGroups = new SelectList(db.EffectGroups, "EffectGroupId", "EffectGroupName"); vm.EffectTypes = new SelectList(db.EffectTypes.Where(p => p.EffectGroupId == vm.Risk.EffectGroupId), "EffectTypeId", "EffectTypeName"); vm.Effects = new SelectList(db.Effects.Where(p => p.EffectTypeId == vm.Risk.EffectTypeId), "EffectId", "EffectName"); vm.RiskCats = new SelectList(db.RiskCats, "RiskCatId", "RiskCatName"); vm.RiskGroups = new SelectList(db.RiskGroups.Where(p => p.RiskCatId == vm.Risk.RiskCatId), "RiskGroupId", "RiskGroupName"); vm.RiskTypes = new SelectList(db.RiskTypes.Where(p => p.RiskGroupId == vm.Risk.RiskGroupId), "RiskTypeId", "RiskTypeName"); return View(vm); }
public ActionResult ProbDetail(int id) { RiskProb prob = db.RiskProbs.Include("Risk").Where(p => p.RiskId == id).FirstOrDefault(); if (prob == null) { prob = new RiskProb(); prob.RiskId = id; prob.ProbOption = Utils.PROBOPTION_FREQUENCY; prob.FreqId = Utils.FREQUENCY1; prob.ProbLevelId = Utils.PROBLEVEL1; db.RiskProbs.AddObject(prob); db.SaveChanges(); prob.Risk.ProbLevelId = Utils.PROBLEVEL1; Utils.CalcRiskLevel(prob.Risk); db.SaveChanges(); } return View(prob); }