public override object Format(object data, object existingData = null) { var xmlData = data as string; var table = existingData as DataTable; var result = XmlHelper.XslTransform(xmlData, this.XslPath); string[] lines = result.Split(new string[] { "\n" }, StringSplitOptions.RemoveEmptyEntries); foreach (var line in lines) { var values = line.Split(new string[] { this.FieldSeperator }, StringSplitOptions.RemoveEmptyEntries); if (table == null) { table = new DataTable(); DataTableHelper.CreateTableColumns(table, values, isHeader: true); } else { DataTableHelper.AddTableRow(table, values); } } return(table); }
private DataTable FormatToDataTable(IList <string> lines, DataTable table) { foreach (var line in lines) { if (line != null) { var values = new List <string>(); if (table == null) { // header string columnName = this.FormatterOptions.GetValue <string>("ColumnName") ?? "Data"; values.Add(columnName); table = new DataTable(); DataTableHelper.CreateTableColumns(table, values, true); } else { // data values.Add(line); DataTableHelper.AddTableRow(table, values); } } } return(table); }
public override object Format(object data, object existingData = null) { string pattern = this.FormatterOptions.GetValue <string>("Pattern"); bool hasHeader = true; var table = existingData as DataTable; var line = data as string; if (line != null) { var values = new List <string>(); var regex = new Regex(pattern); foreach (Match match in regex.Matches(line)) { values.Add(match.Value); } if (table == null) { table = new DataTable(); DataTableHelper.CreateTableColumns(table, values, hasHeader); } else { DataTableHelper.AddTableRow(table, values); } } return(table); }
private DataTable FormatToDataTable(IList <string> lines, DataTable table) { string separator = this.FormatterOptions.GetValue <string>("Separator"); string enclosure = this.FormatterOptions.GetValue <string>("Enclosure"); bool trimData = this.FormatterOptions.GetValue <bool>("TrimData"); bool isHeader = true; foreach (var line in lines) { List <string> values = this.SplitLine(line, separator[0], enclosure); if (trimData) { values = values.Select(s => s.Trim()).ToList(); } if (table == null) { // header table = new DataTable(); if (!this.ValidateHeader(values)) { throw new Exception(string.Format("Fielddefinitions do not match. Data={0}", line)); } else { if (this.FieldDefinitions.Any()) { DataTableHelper.CreateTableColumns(table, this.FieldDefinitions.TableFields, isHeader); } else { DataTableHelper.CreateTableColumns(table, values, isHeader); } } } else { // data if (this.IsValidationActive && !this.ValidateData(values, table.Columns)) { this.ErrorData.Add(line); } else { DataTableHelper.AddTableRow(table, values); } } } return(table); }
private DataTable FormatToDataTable(IList <string> lines, DataTable table) { bool isHeader = true; foreach (var line in lines) { List <string> values = this.SplitLine(line, this.FieldDefinitions); if (table == null) { // header table = new DataTable(); if (!this.ValidateHeader(values)) { throw new Exception(string.Format("Fielddefinitions do not match. Data={0}", line)); } else { if (this.FieldDefinitions.Any()) { DataTableHelper.CreateTableColumns(table, this.FieldDefinitions.TableFields, isHeader); } else { DataTableHelper.CreateTableColumns(table, values, isHeader); } } } else { // data DataTableHelper.AddTableRow(table, values); } } return(table); }