public ActionResult Index() { RiskMapViewModel vm = new RiskMapViewModel(); vm.Param = new RiskMapParam(); vm.Param.PosId = 1; vm.Param.MapDate = DateTime.Now; vm.Param.MapDate2 = DateTime.Now; UpdateRiskMapParam(vm.Param); CalcRiskMap(vm); return(View(vm)); }
public ActionResult Index(RiskMapViewModel vm) { UpdateRiskMapParam(vm.Param); CalcRiskMap(vm); return(View(vm)); }
private void CalcRiskMap(RiskMapViewModel vm) { vm.RiskList = new List <Models.RiskMap.RiskMapData>(); for (var i = 1; i <= 5; i++) { for (var j = 1; j <= 5; j++) { vm.RiskList.Add(new RiskMapData { ProbLevelId = i, ImpactLevelId = j, Count = 0, RiskLevel = i * j }); } } var risks = db.Risks.Where(p => p.ProbLevelId != null && p.ImpactLevelId != null); /*if (vm.Param.PosId == 1) * risks = risks.Where(p => p.DeptId != null); * else if (vm.Param.PosId == 2) * { * risks = risks.Where(p => p.BranchId != null); * if (vm.Param.BranchId != null) * risks = risks.Where(p => p.BranchId == vm.Param.BranchId); * } */ if (vm.Param.PosId == 1) { risks = risks.Where(p => p.DeptId != null || p.BranchId != null); } else if (vm.Param.PosId == 2) { risks = risks.Where(p => p.DeptId != null && p.SubDivId == vm.Param.BranchId); } else if (vm.Param.PosId == 3) { risks = risks.Where(p => p.BranchId != null); if (vm.Param.BranchId != null) { risks = risks.Where(p => p.BranchId == vm.Param.BranchId); } } else if (vm.Param.PosId == 4) { risks = risks.Where(p => p.BranchId != null); if (vm.Param.BranchId != null) { risks = risks.Where(p => p.Branch.KorwilId == vm.Param.BranchId); } } else if (vm.Param.PosId == 5) { risks = risks.Where(p => p.BranchId != null); if (vm.Param.BranchId != null) { risks = risks.Where(p => p.Branch.ClassId == vm.Param.BranchId); } } if (vm.Param.IsApproved) { risks = risks.Where(p => p.CloseDate == null || (p.CloseDate > vm.Param.MapDate && p.CloseDate < vm.Param.MapDate)); risks = risks.Where(p => p.ApprovalDate != null && (p.ApprovalDate >= vm.Param.MapDate && p.ApprovalDate <= vm.Param.MapDate2)); } else { risks = risks.Where(p => p.ApprovalDate == null && (p.RiskDate >= vm.Param.MapDate && p.RiskDate <= vm.Param.MapDate2)); } foreach (var r in risks) { if (vm.Param.IsApproved) { var rm = db.RiskMitigations .Where(p => p.RiskId == r.RiskId && p.ApprovalDate != null && p.ApprovalDate >= vm.Param.MapDate && p.ApprovalDate <= vm.Param.MapDate2) .OrderByDescending(p => p.ApprovalDate) .First(); if (rm != null) { AddProbImpactToList((int)rm.ProbLevelId, (int)rm.ImpactLevelId, vm.RiskList); } else { AddProbImpactToList((int)r.ProbLevelId, (int)r.ImpactLevelId, vm.RiskList); } } else { AddProbImpactToList((int)r.ProbLevelId, (int)r.ImpactLevelId, vm.RiskList); } } vm.CalcMinMaxCount(); }
public void ExportToWord(int?posId, int?branchId, DateTime mapDate, DateTime mapDate2, bool isApproved) { RiskMapViewModel vm = new RiskMapViewModel(); vm.Param = new RiskMapParam(); vm.Param.PosId = posId; vm.Param.BranchId = branchId; vm.Param.MapDate = mapDate; vm.Param.MapDate2 = mapDate2; vm.Param.IsApproved = isApproved; CalcRiskMap(vm); var cnt = 0; var backColor = string.Empty; var foreColor = string.Empty; int prob = 0; int impact = 0; StringWriter sw = new StringWriter(); sw.WriteLine("<table style='font-family: Tahoma, verdana; font-size: 1em'>"); for (var i = 7; i >= 1; i--) { sw.WriteLine("<tr>"); for (var j = 1; j <= 7; j++) { prob = i - 2; impact = j - 2; if (i == 7 && j == 1) { sw.WriteLine("<td rowspan='7' style='width: 20px; text-align: center; font-weight: bold; font-size: 1em'>"); sw.WriteLine("P<br />R<br />O<br />B<br />A<br />B<br />I<br />L<br />I<br />T<br />A<br />S"); sw.WriteLine("</td>"); } else if (i == 1 && j == 1) { sw.WriteLine("<td colspan='6' style='padding-top: 4px; text-align: center; font-weight: bold; font-size: 1em'>"); sw.WriteLine("D A M P A K"); sw.WriteLine("</td>"); } else if (i == 1 && j > 1) { } else if (j > 1) { if (impact == 0 && prob != 0) { sw.WriteLine("<td style='padding-right: 8px; text-align: right; width: 80px; height: 46px; font-size: .85em'>"); sw.WriteLine(Utils.GetProbLevelText(prob)); sw.WriteLine("</td>"); } else if (impact != 0 && prob == 0) { sw.WriteLine("<td style='padding-top: 4px; text-align: center; vertical-align: top; width: 80px; font-size: .85em'>"); sw.WriteLine(Utils.GetImpactLevelText(impact)); sw.WriteLine("</td>"); } else if (impact == 0 && prob == 0) { sw.WriteLine("<td></td>"); } else { Utils.GetRiskLevelColors(prob * impact, out backColor, out foreColor); cnt = RiskMapViewModel.GetCount(prob, impact, vm.RiskList); sw.WriteLine("<td style='text-align: center; background-color: " + backColor + "; color: " + foreColor + "'>"); if (cnt > 0) { sw.WriteLine("<div style='font-size: " + (8 + (decimal)cnt / (decimal)vm.MaxCount * 20M).ToString() + "pt; font-weight: bold'>"); sw.WriteLine(cnt); sw.WriteLine("</div>"); } sw.WriteLine("</td>"); } } } sw.WriteLine("</tr>"); } sw.WriteLine("</table>"); Response.ClearContent(); Response.AddHeader("content-disposition", "attachment;filename=risk_map.doc"); Response.ContentType = "application/vnd.ms-word"; Response.Write(sw.ToString()); Response.End(); }