in src/MIMConfigDocumenter/ServiceCommonDocumenter.cs [1113:1188]
protected void CreateNestedMultivalueOrderedSettingsDiffgramDataSet()
{
Logger.Instance.WriteMethodEntry();
try
{
var table = new DataTable("Sections") { Locale = CultureInfo.InvariantCulture };
var column1 = new DataColumn("Section");
table.Columns.Add(column1);
table.PrimaryKey = new[] { column1 };
var table2 = new DataTable("Sub-sections") { Locale = CultureInfo.InvariantCulture };
var column12 = new DataColumn("Section");
var column22 = new DataColumn("Sub-section");
table2.Columns.Add(column12);
table2.Columns.Add(column22);
table2.PrimaryKey = new[] { column12, column22 };
var table3 = new DataTable("Settings") { Locale = CultureInfo.InvariantCulture };
var column13 = new DataColumn("Section");
var column23 = new DataColumn("Sub-section");
var column33 = new DataColumn("ConfigurationIndex", typeof(int)); // needed for multivalue attributes
var column43 = new DataColumn("Configuration"); // needed for sorting multivalues
var column53 = new DataColumn("ConfigurationMarkup");
table3.Columns.Add(column13);
table3.Columns.Add(column23);
table3.Columns.Add(column33);
table3.Columns.Add(column43);
table3.Columns.Add(column53);
table3.PrimaryKey = new[] { column13, column23, column33 };
var printTable = Documenter.GetPrintTable();
// Table 1
printTable.Rows.Add((new OrderedDictionary { { "TableIndex", 0 }, { "ColumnIndex", 0 }, { "Hidden", false }, { "SortOrder", -1 }, { "BookmarkIndex", -1 }, { "JumpToBookmarkIndex", -1 }, { "ChangeIgnored", false } }).Values.Cast<object>().ToArray());
// Table 2
printTable.Rows.Add((new OrderedDictionary { { "TableIndex", 1 }, { "ColumnIndex", 1 }, { "Hidden", false }, { "SortOrder", -1 }, { "BookmarkIndex", -1 }, { "JumpToBookmarkIndex", -1 }, { "ChangeIgnored", false } }).Values.Cast<object>().ToArray());
// Table 3
printTable.Rows.Add((new OrderedDictionary { { "TableIndex", 2 }, { "ColumnIndex", 3 }, { "Hidden", true }, { "SortOrder", 1 }, { "BookmarkIndex", -1 }, { "JumpToBookmarkIndex", -1 }, { "ChangeIgnored", false } }).Values.Cast<object>().ToArray());
printTable.Rows.Add((new OrderedDictionary { { "TableIndex", 2 }, { "ColumnIndex", 4 }, { "Hidden", false }, { "SortOrder", -1 }, { "BookmarkIndex", -1 }, { "JumpToBookmarkIndex", -1 }, { "ChangeIgnored", false } }).Values.Cast<object>().ToArray());
var diffgramTable = Documenter.CreateDiffgramTable(table);
var diffgramTable2 = Documenter.CreateDiffgramTable(table2);
var diffgramTable3 = Documenter.CreateDiffgramTable(table3);
this.DiffgramDataSet = new DataSet("Sections") { Locale = CultureInfo.InvariantCulture };
this.DiffgramDataSet.Tables.Add(diffgramTable);
this.DiffgramDataSet.Tables.Add(diffgramTable2);
this.DiffgramDataSet.Tables.Add(diffgramTable3);
this.DiffgramDataSet.Tables.Add(printTable);
// set up data relations
var dataRelation12 = new DataRelation("DataRelation12", new[] { diffgramTable.Columns[0] }, new[] { diffgramTable2.Columns[0] }, false);
this.DiffgramDataSet.Relations.Add(dataRelation12);
var dataRelation23 = new DataRelation("DataRelation23", new[] { diffgramTable2.Columns[0], diffgramTable2.Columns[1] }, new[] { diffgramTable3.Columns[0], diffgramTable3.Columns[1] }, false);
this.DiffgramDataSet.Relations.Add(dataRelation23);
Documenter.AddRowVisibilityStatusColumn(this.DiffgramDataSet);
this.DiffgramDataSet.AcceptChanges();
this.DiffgramDataSets.Add(this.DiffgramDataSet);
}
finally
{
Logger.Instance.WriteMethodExit();
}
}