ProcessErrorReader
Represents a class object that can read error information from a delimited file.
using Microsoft.VisualBasic;
using Relativity.DataExchange.Data;
using Relativity.DataExchange.Io;
using Relativity.Logging;
using System.Data;
using System.Globalization;
using System.IO;
using System.Threading;
namespace Relativity.DataExchange.Process
{
internal class ProcessErrorReader : DelimitedFileImporter2
{
public const string ColumnKey = "Key";
public const string ColumnStatus = "Status";
public const string ColumnDescription = "Description";
public const string ColumnTimestamp = "Timestamp";
public const int MaxRows = 1000;
public ProcessErrorReader(IoReporterContext context, ILog logger, CancellationToken cancellationToken)
: base(',', '"', Strings.ChrW(20), context, logger, cancellationToken)
{
}
public override object ReadFile(string path)
{
base.Reader = new StreamReader(path);
DataTable dataTable = new DataTable {
Locale = CultureInfo.CurrentCulture
};
dataTable.Columns.Add("Key");
dataTable.Columns.Add("Status");
dataTable.Columns.Add("Description");
dataTable.Columns.Add("Timestamp");
int num = 0;
while (!HasReachedEof && num < 1000) {
DataRowCollection rows = dataTable.Rows;
object[] line = GetLine();
rows.Add(line);
num++;
}
Close();
return new ProcessErrorReport {
Report = dataTable,
MaxLengthExceeded = (num >= 1000)
};
}
}
}