protected void GenerateIndicatorPanelDetail(RiskRuleCategory category, HealthcheckRiskRule rule)
        {
            string safeRuleId = rule.RiskId.Replace("$", "dollar");

            GenerateAccordionDetail("rules" + safeRuleId, "rules" + category.ToString(), rule.Rationale, rule.Points, true,
                                    () =>
            {
                var hcrule = RuleSet <T> .GetRuleFromID(rule.RiskId);
                if (hcrule == null)
                {
                }
                else
                {
                    Add("<h3>");
                    Add(hcrule.Title);
                    Add("</h3>\r\n<strong>Description:</strong><p class=\"text-justify\">");
                    Add(NewLineToBR(hcrule.Description));
                    Add("</p>\r\n<strong>Technical explanation:</strong><p class=\"text-justify\">");
                    Add(NewLineToBR(hcrule.TechnicalExplanation));
                    Add("</p>\r\n<strong>Advised solution:</strong><p class=\"text-justify\">");
                    Add(NewLineToBR(hcrule.Solution));
                    Add("</p>\r\n<strong>Points:</strong><p>");
                    Add(NewLineToBR(hcrule.GetComputationModelString()));
                    Add("</p>\r\n");
                    if (!String.IsNullOrEmpty(hcrule.Documentation))
                    {
                        Add("<strong>Documentation:</strong><p>");
                        Add(hcrule.Documentation);
                        Add("</p>");
                    }
                }
                if ((rule.Details != null && rule.Details.Count > 0) || (hcrule != null && !String.IsNullOrEmpty(hcrule.ReportLocation)))
                {
                    Add("<strong>Details:</strong>");
                    if (!String.IsNullOrEmpty(hcrule.ReportLocation))
                    {
                        Add("<p>");
                        Add(hcrule.ReportLocation);
                        Add("</p>");
                    }
                    if (rule.Details != null && rule.Details.Count > 0)
                    {
                        Add("<p>");
                        Add(String.Join("<br>\r\n", rule.Details.ToArray()));
                        Add("</p>");
                    }
                }
            });
        }
Exemple #2
0
        protected void GenerateIndicatorPanelDetail(string category, HealthcheckRiskRule rule, string optionalId = null)
        {
            string safeRuleId = rule.RiskId.Replace("$", "dollar");
            var    hcrule     = RuleSet <HealthcheckData> .GetRuleFromID(rule.RiskId);

            GenerateAccordionDetailForRule("rules" + optionalId + safeRuleId, "rules" + category, rule.Rationale, rule, hcrule,
                                           () =>
            {
                if (hcrule == null)
                {
                }
                else
                {
                    Add("<h3>");
                    Add(hcrule.Title);
                    Add("</h3>\r\n<strong>Rule ID:</strong><p class=\"text-justify\">");
                    Add(hcrule.RiskId);
                    Add("</p>\r\n<strong>Description:</strong><p class=\"text-justify\">");
                    Add(NewLineToBR(hcrule.Description));
                    Add("</p>\r\n<strong>Technical explanation:</strong><p class=\"text-justify\">");
                    Add(NewLineToBR(hcrule.TechnicalExplanation));
                    Add("</p>\r\n<strong>Advised solution:</strong><p class=\"text-justify\">");
                    Add(NewLineToBR(hcrule.Solution));
                    Add("</p>\r\n<strong>Points:</strong><p>");
                    Add(NewLineToBR(hcrule.GetComputationModelString()));
                    Add("</p>\r\n");
                    if (!String.IsNullOrEmpty(hcrule.Documentation))
                    {
                        Add("<strong>Documentation:</strong><p>");
                        Add(hcrule.Documentation);
                        Add("</p>");
                    }
                }
                if ((rule.Details != null && rule.Details.Count > 0) || (hcrule != null && !String.IsNullOrEmpty(hcrule.ReportLocation)))
                {
                    Add("<strong>Details:</strong>");
                    if (hcrule != null && !String.IsNullOrEmpty(hcrule.ReportLocation))
                    {
                        Add("<p>");
                        Add(hcrule.ReportLocation);
                        Add("</p>");
                    }
                    if (rule.Details != null && rule.Details.Count > 0 && !string.IsNullOrEmpty(rule.Details[0]))
                    {
                        var tokens = GetTokens(rule.Details);
                        if (tokens != null && tokens.Count > 0)
                        {
                            Add(@"<div class=""row"">
			<div class=""col-md-12 table-responsive"">
				<table class=""table table-striped table-bordered"">
					<thead><tr>"                    );
                            foreach (var token in tokens)
                            {
                                Add("<th>");
                                AddEncoded(token.Replace("Domain_controller:", "Domain controller:").Substring(0, token.Length - 1));
                                Add("</th>");
                            }
                            if (ActionPlanOrchestrator != null)
                            {
                                Add("<th>Action Plan</th>");
                            }
                            Add("</tr></thead><tbody>");
                            foreach (var d in rule.Details)
                            {
                                if (string.IsNullOrEmpty(d))
                                {
                                    continue;
                                }
                                Add("<tr>");
                                var t = d.Replace("Domain controller:", "Domain_controller:").Split(' ');
                                for (int i = 0, j = 0; i < t.Length && j <= tokens.Count; i++)
                                {
                                    if (j < tokens.Count && t[i] == tokens[j])
                                    {
                                        if (j != 0)
                                        {
                                            Add("</td>");
                                        }
                                        j++;
                                        Add("<td>");
                                    }
                                    else
                                    {
                                        Add(t[i]);
                                        Add(" ");
                                    }
                                }
                                Add("</td>");
                                if (ActionPlanOrchestrator != null)
                                {
                                    Add("<td>");
                                    ActionPlanOrchestrator.GenerateDetailledActionPlan(sb, rule, hcrule, d);
                                    Add("</td>");
                                }
                                Add("</tr>");
                            }
                            Add("</tbody></table></div></div>");
                        }
                        else
                        {
                            Add("<p>");
                            Add(String.Join("<br>\r\n", rule.Details.ToArray()));
                            Add("</p>");
                        }
                    }
                }
            });
        }
Exemple #3
0
 protected void GenerateAccordionDetailForRule(string id, string dataParent, string title, HealthcheckRiskRule rule, RuleBase <HealthcheckData> hcrule, GenerateContentDelegate content)
 {
     GenerateAccordionDetail(id, dataParent, title,
                             () =>
     {
         if (rule.Points == 0)
         {
             Add(@"<i class=""float-right""><span class='float-right'>Informative rule</span>");
             if (ActionPlanOrchestrator != null)
             {
                 ActionPlanOrchestrator.GenerateMainActionPlan(sb, rule, hcrule);
             }
             Add("</i>");
         }
         else
         {
             Add(@"<i class=""float-right""><span class='float-right'>+ ");
             Add(rule.Points);
             Add(@" Point(s)</span>");
             if (ActionPlanOrchestrator != null)
             {
                 ActionPlanOrchestrator.GenerateMainActionPlan(sb, rule, hcrule);
             }
             Add("</i>");
         }
     }, content);
 }