private void ParseStigChildNodes(DataRow dataRow, StigCheck stigCheck) { DataRow[] childRows = dataRow.GetChildRows("VULN_STIG_DATA"); foreach (DataRow childRow in childRows) { switch (childRow["VULN_ATTRIBUTE"].ToString()) { case "Vuln_Num": { stigCheck.VulnId = childRow["ATTRIBUTE_DATA"].ToString(); break; } case "Severity": { stigCheck.Severity = childRow["ATTRIBUTE_DATA"].ToString(); break; } case "Rule_Title": { stigCheck.Title = childRow["ATTRIBUTE_DATA"].ToString(); break; } case "Rule_ID": { stigCheck.RuleId = childRow["ATTRIBUTE_DATA"].ToString(); break; } case "Responsibility": { stigCheck.Responsibility = childRow["ATTRIBUTE_DATA"].ToString(); break; } case "Documentable": { stigCheck.IsDocumentable = bool.Parse(childRow["ATTRIBUTE_DATA"].ToString()); break; } default: { break; } } } }
private List <StigCheck> IngestChecklist(string checklist) { List <StigCheck> stigList = new List <StigCheck>(); DataSet dataSet = new DataSet(); dataSet.ReadXml(checklist); foreach (DataRow dataRow in dataSet.Tables["VULN"].Rows) { StigCheck stigCheck = new StigCheck(); stigCheck.Status = dataRow["STATUS"].ToString(); stigCheck.FindingDetails = dataRow["FINDING_DETAILS"].ToString(); stigCheck.Comments = dataRow["COMMENTS"].ToString(); stigCheck.SeverityOverride = dataRow["SEVERITY_OVERRIDE"].ToString(); stigCheck.OverrideJustification = dataRow["SEVERITY_JUSTIFICATION"].ToString(); ParseStigChildNodes(dataRow, stigCheck); stigList.Add(stigCheck); } return(stigList); }