public string GetTheTableDiffExceptionMessage(TableDifferenceResults <T> tableDifferenceResults) { var realData = new StringBuilder(); var index = 0; var everyLineInTheTable = tableDifferenceResults.Table.ToString().Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries); foreach (var line in everyLineInTheTable) { var prefix = " "; if (tableDifferenceResults.IndexesOfTableRowsThatWereNotMatched.Contains(index)) { prefix = "- "; } realData.AppendLine(prefix + line); var missingIndexedItem = tableDifferenceResults.ItemsInTheDataThatWereNotFoundInTheTable.FirstOrDefault(i => i.Index == index); if (missingIndexedItem != null) { AppendExtraLineText(tableDifferenceResults, missingIndexedItem, realData); } index++; } foreach (var item in tableDifferenceResults.ItemsInTheDataThatWereNotFoundInTheTable.Where(i => !i.IsIndexSpecific)) { AppendExtraLineText(tableDifferenceResults, item, realData); } return(realData.ToString()); }
public string GetTheTableDiffExceptionMessage(TableDifferenceResults <T> tableDifferenceResults) { var realData = new StringBuilder(); var index = 0; var everyLineInTheTable = tableDifferenceResults.Table.ToString().Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries); foreach (var line in everyLineInTheTable) { var prefix = " "; if (tableDifferenceResults.IndexesOfTableRowsThatWereNotMatched.Contains(index)) { prefix = "- "; } realData.AppendLine(prefix + line); index++; } foreach (var item in tableDifferenceResults.ItemsInTheDataThatWereNotFoundInTheTable) { var line = "+ |"; foreach (var header in tableDifferenceResults.Table.Header) { line += $" {GetTheValue(item, header)} |"; } realData.AppendLine(line); } return(realData.ToString()); }
private void AppendExtraLineText(TableDifferenceResults <T> tableDifferenceResults, TableDifferenceItem <T> item, StringBuilder realData) { var line = "+ |"; foreach (var header in tableDifferenceResults.Table.Header) { line += $" {GetTheValue(item.Item, header)} |"; } realData.AppendLine(line); }
public string GetTheTableDiffExceptionMessage(TableDifferenceResults <T> tableDifferenceResults) { var message = parent.GetTheTableDiffExceptionMessage(tableDifferenceResults); if (string.IsNullOrEmpty(message)) { return(message); } var dictionary = GetTheMaximumLengthsOfEachColumn(message); var stringBuilder = new StringBuilder(); foreach (var line in GetLines(message)) { stringBuilder.AppendLine(ReformatLineUsingTheseColumnLengths(dictionary, line)); } return(stringBuilder.ToString()); }
private void AppendExtraLineText(TableDifferenceResults <T> tableDifferenceResults, TableDifferenceItem <T> item, StringBuilder realData) { var line = "+ |"; foreach (var header in tableDifferenceResults.Table.Header) { object value = GetTheValue(item.Item, header); if (value is DateTime) { DateTime dateValue = (DateTime)value; // Append millisecond and ticks, if any, to current culture's default date time format string dateTimeFormat = DateTimeFormatInfo.CurrentInfo.ShortDatePattern + " " + DateTimeFormatInfo.CurrentInfo.LongTimePattern; dateTimeFormat = Regex.Replace(dateTimeFormat, "(:ss|:s)", "$1.FFFFFFF"); value = dateValue.ToString(dateTimeFormat); } line += $" {value} |"; } realData.AppendLine(line); }