Esempio n. 1
0
        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);
        }