Esempio n. 1
0
        public void ExportToWord(int? posId, int? branchId, DateTime mapDate, bool isApproved)
        {
            RiskMapViewModel vm = new RiskMapViewModel();
            vm.Param = new RiskMapParam();
            vm.Param.PosId = posId;
            vm.Param.BranchId = branchId;
            vm.Param.MapDate = mapDate;
            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();
        }
Esempio n. 2
0
 public ActionResult Index(RiskMapViewModel vm)
 {
     UpdateRiskMapParam(vm.Param);
     CalcRiskMap(vm);
     return View(vm);
 }
Esempio n. 3
0
        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.IsApproved)
            {
                risks = risks.Where(p => p.CloseDate == null || p.CloseDate > vm.Param.MapDate);
                risks = risks.Where(p => p.ApprovalDate != null && p.ApprovalDate <= vm.Param.MapDate);
            }
            else
            {
                risks = risks.Where(p => p.ApprovalDate == null && p.RiskDate <= vm.Param.MapDate);
            }

            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)
                        .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();
        }
Esempio n. 4
0
        public ActionResult Index()
        {
            RiskMapViewModel vm = new RiskMapViewModel();
            vm.Param = new RiskMapParam();
            vm.Param.PosId = 1;
            vm.Param.MapDate = DateTime.Now;
            UpdateRiskMapParam(vm.Param);
            CalcRiskMap(vm);

            return View(vm);
        }