in src/MIMConfigDocumenter/Documenter.cs [1859:1945]
protected void WriteCell(DataRow row, DataColumn column, int rowSpan, int tableIndex)
{
Logger.Instance.WriteMethodEntry("Row Span: '{0}'. Table Index: '{1}'.", rowSpan, tableIndex);
try
{
if (row == null)
{
throw new ArgumentNullException("row");
}
if (column == null)
{
throw new ArgumentNullException("column");
}
var printTable = this.DiffgramDataSet.Tables["PrintSettings"];
var rowFilter = string.Format(CultureInfo.InvariantCulture, "TableIndex = {0} AND ColumnIndex = {1} AND (BookmarkIndex <> -1 OR JumpToBookmarkIndex <> -1)", tableIndex, column.Ordinal);
var printRow = printTable.Select(rowFilter).FirstOrDefault();
var bookmarkIndex = printRow != null && (int)printRow["BookmarkIndex"] != -1 ? printRow["BookmarkIndex"] : null;
var jumpToBookmarkIndex = printRow != null && (int)printRow["JumpToBookmarkIndex"] != -1 ? printRow["JumpToBookmarkIndex"] : null;
var cellClass = (string)row[Documenter.RowStateColumn];
this.ReportWriter.WriteBeginTag("td");
this.ReportWriter.WriteAttribute("class", cellClass);
this.ReportWriter.WriteAttribute("rowspan", rowSpan.ToString(CultureInfo.InvariantCulture));
this.ReportWriter.Write(HtmlTextWriter.TagRightChar);
if (column.Table.PrimaryKey.Contains(column))
{
var text = Convert.ToString(row[column.ColumnName], CultureInfo.InvariantCulture);
this.WriteCellText(text, (int?)bookmarkIndex, (int?)jumpToBookmarkIndex, row, cellClass);
}
else
{
var rowState = (DataRowState)Enum.Parse(typeof(DataRowState), row[Documenter.RowStateColumn].ToString());
switch (rowState)
{
case DataRowState.Modified:
{
var oldText = Convert.ToString(row[Documenter.OldColumnPrefix + column.ColumnName], CultureInfo.InvariantCulture);
var text = Convert.ToString(row[column.ColumnName], CultureInfo.InvariantCulture);
if (oldText != text)
{
cellClass = DataRowState.Deleted.ToString();
this.ReportWriter.WriteBeginTag("span");
this.ReportWriter.WriteAttribute("class", cellClass);
this.ReportWriter.Write(HtmlTextWriter.TagRightChar);
this.WriteCellText(oldText, (int?)bookmarkIndex, (int?)jumpToBookmarkIndex, row, cellClass);
this.ReportWriter.WriteEndTag("span");
}
this.ReportWriter.WriteBeginTag("span");
this.ReportWriter.WriteAttribute("class", DataRowState.Modified.ToString());
this.ReportWriter.Write(HtmlTextWriter.TagRightChar);
this.WriteCellText(text, (int?)bookmarkIndex, (int?)jumpToBookmarkIndex, row, cellClass);
this.ReportWriter.WriteEndTag("span");
break;
}
case DataRowState.Deleted:
{
cellClass = DataRowState.Deleted.ToString();
var text = Convert.ToString(row[Documenter.OldColumnPrefix + column.ColumnName], CultureInfo.InvariantCulture);
this.WriteCellText(text, (int?)bookmarkIndex, (int?)jumpToBookmarkIndex, row, cellClass);
break;
}
default:
{
var text = Convert.ToString(row[column.ColumnName], CultureInfo.InvariantCulture);
this.WriteCellText(text, (int?)bookmarkIndex, (int?)jumpToBookmarkIndex, row, cellClass);
break;
}
}
}
this.ReportWriter.WriteEndTag("td");
}
finally
{
Logger.Instance.WriteMethodExit("Row Span: '{0}'. Table Index: '{1}'.", rowSpan, tableIndex);
}
}