//public static // CSVファイルから適切なCsvDataTableの派生クラスを作るファクトリメソッド public static CsvDataTable CreateCsvDataTable(FileInfo file) { string[][] alldata = LoadCSV(file); CsvDataTable result = null; try{ if (alldata[0][0].StartsWith("テストファイルNo.")) { result = new AsDescriptionTable(); result.Name = Path.GetFileNameWithoutExtension(file.Name); } else if (alldata[0][1].IndexOf("アクセシビリティサポーテッド検証結果") >= 0) { result = new AsTestResultTable(); } else { result = new SuccessCriteriaTable(); } if (result == null) { return(null); } Console.WriteLine("Load start: {0}", file.FullName); result.Load(alldata); Console.WriteLine("Loaded: {0} rows ({1} : {2})", result.Rows.Count, result.GetType(), result.Name); return(result); } catch (Exception e) { throw new Exception(string.Format("データが読めませんでした。{0} \n {1}", file.FullName, alldata[0][1]), e); } }
//public static // CSVファイルから適切なCsvDataTableの派生クラスを作るファクトリメソッド public static CsvDataTable CreateCsvDataTable(FileInfo file) { string[][] alldata = LoadCSV(file); CsvDataTable result = null; try{ if(alldata[0][0].StartsWith("テストファイルNo.")){ result = new AsDescriptionTable(); result.Name = Path.GetFileNameWithoutExtension(file.Name); } else if(alldata[0][1].IndexOf("アクセシビリティサポーテッド検証結果") >= 0){ result = new AsTestResultTable(); } else { result = new SuccessCriteriaTable(); } if(result == null) return null; Console.WriteLine("Load start: {0}", file.FullName); result.Load(alldata); Console.WriteLine("Loaded: {0} rows ({1} : {2})", result.Rows.Count, result.GetType(), result.Name); return result; } catch (Exception e){ throw new Exception(string.Format("データが読めませんでした。{0} \n {1}", file.FullName, alldata[0][1]), e); } }
// DescriptionのXML/HTMLをすべてSaveします。 public void SaveAllChildren(AsDescriptionTable adt) { foreach (DataRow row in adt.Rows) { string id = row[AsDescriptionTable.IdColumnName].ToString(); XmlDocument xml = new XmlDocument() { XmlResolver = null }; XmlElement root = xml.CreateElement("description"); xml.AppendChild(root); // 達成基準の情報を追加 // ほかの達成基準からも参照されている可能性があるので全てのテーブルを見る int count = 0; foreach (AsDescriptionTable otherAdt in AsDescriptionTables) { DataRow r = otherAdt.Rows.Find(id); if (r != null) { XmlElement successCriteriaElement = xml.CreateElement("successCriteria"); XmlNode scResult = SuccessCriteriaTable.GetSuccessCriteriaInfo(xml, otherAdt.Name); root.AppendChild(scResult); count++; } } if (count > 1) { Console.WriteLine("multiple use: {0} ", id); } string testType = GetTestTypeById(id); if (testType != null) { XmlElement testTypeElement = xml.CreateElement("testType"); testTypeElement.InnerText = testType; root.AppendChild(testTypeElement); } root.AppendChild(adt.RowToXml(row, xml)); XmlElement testDetail = xml.CreateElement("testDetail"); XmlNode testDetailNode = GetTestDetail(id, xml); if (testDetail != null) { testDetail.AppendChild(testDetailNode); root.AppendChild(testDetail); } else { Console.Error.WriteLine("testDetailが取得できませんでした : {0}", id); } FileInfo outputXml = GetFileInfo(OutputXmlDir, id + ".xml"); SaveXml(xml, outputXml); FileInfo outputHtml = GetFileInfo(OutputHtmlDir, id + ".html"); CreateHtml("doc", xml, outputHtml); } }
// DescriptionのXML/HTMLをすべてSaveします。 public void SaveAllChildren(AsDescriptionTable adt) { foreach(DataRow row in adt.Rows){ string id = row[AsDescriptionTable.IdColumnName].ToString(); XmlDocument xml = new XmlDocument(){XmlResolver = null}; XmlElement root = xml.CreateElement("description"); xml.AppendChild(root); // 達成基準の情報を追加 // ほかの達成基準からも参照されている可能性があるので全てのテーブルを見る int count = 0; foreach(AsDescriptionTable otherAdt in AsDescriptionTables){ DataRow r = otherAdt.Rows.Find(id); if(r != null){ XmlElement successCriteriaElement = xml.CreateElement("successCriteria"); XmlNode scResult = SuccessCriteriaTable.GetSuccessCriteriaInfo(xml, otherAdt.Name); root.AppendChild(scResult); count++; } } if(count > 1){ Console.WriteLine("multiple use: {0} ", id); } string testType = GetTestTypeById(id); if(testType != null){ XmlElement testTypeElement = xml.CreateElement("testType"); testTypeElement.InnerText = testType; root.AppendChild(testTypeElement); } root.AppendChild(adt.RowToXml(row, xml)); XmlElement testDetail = xml.CreateElement("testDetail"); XmlNode testDetailNode = GetTestDetail(id, xml); if(testDetail != null){ testDetail.AppendChild(testDetailNode); root.AppendChild(testDetail); } else { Console.Error.WriteLine("testDetailが取得できませんでした : {0}", id); } FileInfo outputXml = GetFileInfo(OutputXmlDir, id + ".xml"); SaveXml(xml, outputXml); FileInfo outputHtml = GetFileInfo(OutputHtmlDir, id + ".html"); CreateHtml("doc", xml, outputHtml); } }