Exemplo n.º 1
0
        public void RunTimeEmptyGuidProperties()
        {
            var builder = new DelimitedClassBuilder("EntityWithGuid", "\t");

            builder.AddField("Name", typeof(string));
            builder.AddField("Id", typeof(Guid));
            builder.LastField.FieldNullValue = Guid.Empty;

            var engine = new FileHelperEngine(builder.CreateRecordClass())
            {
                Options =
                {
                    IgnoreFirstLines = 1
                }
            };

            const string inputValue = @"Name	Id
first	
second	";

            var records = engine.ReadString(inputValue);

            Check.That(records.Length).IsEqualTo(2);

            dynamic record = records[0];

            Check.That(((Guid)record.Id)).IsEqualTo(Guid.Empty);
            Check.That(((string)record.Name)).IsEqualTo("first");

            record = records[1];
            Check.That(((Guid)record.Id)).IsEqualTo(Guid.Empty);
            Check.That(((string)record.Name)).IsEqualTo("second");
        }
Exemplo n.º 2
0
        public static FileHelperAsyncEngine Create(InputContext context)
        {
            var identifier = Utility.Identifier(context.Entity.OutputTableName(context.Process.Name));
            var delimiter  = string.IsNullOrEmpty(context.Connection.Delimiter) ? "," : context.Connection.Delimiter;

            var builder = new DelimitedClassBuilder(identifier)
            {
                IgnoreEmptyLines = true,
                Delimiter        = delimiter,
                IgnoreFirstLines = context.Connection.Start
            };

            foreach (var field in context.InputFields)
            {
                var fieldBuilder = builder.AddField(field.FieldName(), typeof(string));
                fieldBuilder.FieldQuoted   = true;
                fieldBuilder.QuoteChar     = context.Connection.TextQualifier;
                fieldBuilder.QuoteMode     = QuoteMode.OptionalForBoth;
                fieldBuilder.FieldOptional = field.Optional;
            }

            FileHelpers.ErrorMode errorMode;
            Enum.TryParse(context.Connection.ErrorMode, true, out errorMode);

            var engine = new FileHelperAsyncEngine(builder.CreateRecordClass());

            engine.ErrorManager.ErrorMode  = errorMode;
            engine.ErrorManager.ErrorLimit = context.Connection.ErrorLimit;

            return(engine);
        }
Exemplo n.º 3
0
        public DelimitedFileReader(InputContext context, IRowFactory rowFactory, IRowCondition rowCondition)
        {
            _context      = context;
            _rowFactory   = rowFactory;
            _rowCondition = rowCondition;

            var identifier = Utility.Identifier(context.Entity.OutputTableName(context.Process.Name));

            _builder = new DelimitedClassBuilder(identifier)
            {
                IgnoreEmptyLines = true,
                Delimiter        = context.Connection.Delimiter,
                IgnoreFirstLines = context.Connection.Start
            };

            _fileInfo = new FileInfo(_context.Connection.File);

            foreach (var field in context.InputFields)
            {
                var fieldBuilder = _builder.AddField(field.FieldName(), typeof(string));
                fieldBuilder.FieldQuoted   = true;
                fieldBuilder.QuoteChar     = _context.Connection.TextQualifier;
                fieldBuilder.QuoteMode     = QuoteMode.OptionalForRead;
                fieldBuilder.FieldOptional = field.Optional;
            }
        }
Exemplo n.º 4
0
        //public bool Export(Guid id, PriceImportLogStatus pilStatus, string path)
        //{
        //    DeleteExportFile(path);
        //    PriceImport pi = GetById(id);

        //    // TODO: Convert to MemoryStream.
        //    // TODO: Move hardcoded to translation file
        //    List<int> lst = GetIndexsForExport(id, pilStatus);

        //    DelimitedClassBuilder cb = CreateClassBuilder(pi.SeparationChar, pi.HaveHeader);
        //    FileHelperEngine engine = new FileHelperEngine(cb.CreateRecordClass());
        //    object[] items = engine.ReadFile(path + pi.ID + ".csv");
        //    object[] erroritems = new object[lst.Count];
        //    int i = 0;
        //    foreach (int error in lst)
        //    {
        //        erroritems[i] = items[error];
        //        i++;
        //    }
        //    engine.WriteFile(path + Resource.Business.GetString("ExportFile"), erroritems);


        //    return true;
        //}

        public MemoryStream Export(Guid id, PriceImportLogStatus pilStatus, string path)
        {
            PriceImport pi = GetById(id);

            List <int> lst = GetIndexsForExport(id, pilStatus);

            DelimitedClassBuilder cb     = CreateClassBuilder(pi.SeparationChar, pi.HaveHeader);
            FileHelperEngine      engine = new FileHelperEngine(cb.CreateRecordClass());

            object[] items      = engine.ReadFile(path + pi.ID + ".csv");
            object[] erroritems = new object[lst.Count];
            int      i          = 0;

            foreach (int error in lst)
            {
                erroritems[i] = items[error];
                i++;
            }

            MemoryStream stream = new MemoryStream();
            StreamWriter sw     = new StreamWriter(stream);

            engine.WriteStream(sw, erroritems);

            return(stream);
        }
Exemplo n.º 5
0
        public override void ProcessFeed()
        {
            DelimitedClassBuilder cb = new DelimitedClassBuilder("TmpOutfitUpdater", Separator);

            if (HaveHeader)
            {
                cb.IgnoreFirstLines = 1;
            }
            if (HaveFooter)
            {
                cb.IgnoreLastLines = 1;
            }

            AddFields(cb);

            cb.IgnoreEmptyLines = true;

            FileHelperAsyncEngine engine = new FileHelperAsyncEngine(cb.CreateRecordClass());

            engine.BeginReadFile(Path.Combine(ImportPath, this.FileName));

            while (engine.ReadNext() != null)
            {
                LineRead(ConvertDataToLine(engine.LastRecord));
            }
        }
Exemplo n.º 6
0
        protected virtual void PrepareType(Entity entity)
        {
            var builder = new DelimitedClassBuilder("Tfl" + entity.OutputName())
            {
                IgnoreEmptyLines = true, Delimiter = _connection.Delimiter.ToString(CultureInfo.InvariantCulture), IgnoreFirstLines = 0
            };

            foreach (var f in _fileFields)
            {
                var field = new DelimitedFieldBuilder(f.Identifier, f.SystemType);
                if (f.SimpleType.Equals("datetime"))
                {
                    field.Converter.Kind = ConverterKind.Date;
                    field.Converter.Arg1 = _connection.DateFormat;
                }
                if (f.SimpleType.Equals("guid"))
                {
                    field.Converter.TypeName = "Transformalize.Operations.Load.GuidConverter";
                }
                if (f.SimpleType.Equals("byte[]") || f.SimpleType.Equals("rowversion"))
                {
                    field.Converter.TypeName = "Transformalize.Operations.Load.ByteArrayConverter";
                }
                if (_isCsv)
                {
                    field.FieldQuoted    = true;
                    field.QuoteChar      = '"';
                    field.QuoteMode      = QuoteMode.OptionalForBoth;
                    field.QuoteMultiline = MultilineMode.NotAllow;
                }
                builder.AddField(field);
            }
            Type = builder.CreateRecordClass();
        }
Exemplo n.º 7
0
        public void FullClassBuilding()
        {
            var cb = new DelimitedClassBuilder("Customers", ",");

            cb.IgnoreFirstLines = 1;
            cb.IgnoreEmptyLines = true;

            cb.AddField("Field1", typeof(DateTime));
            cb.LastField.TrimMode       = TrimMode.Both;
            cb.LastField.QuoteMode      = QuoteMode.AlwaysQuoted;
            cb.LastField.FieldNullValue = DateTime.Today;

            cb.AddField("Field2", typeof(string));
            cb.LastField.FieldQuoted = true;
            cb.LastField.QuoteChar   = '"';

            cb.AddField("Field3", typeof(int));

            engine = new FileHelperEngine(cb.CreateRecordClass());

            DataTable dt = engine.ReadFileAsDT(TestCommon.GetPath("Good", "Test2.txt"));

            Assert.AreEqual(4, dt.Rows.Count);
            Assert.AreEqual(4, engine.TotalRecords);
            Assert.AreEqual(0, engine.ErrorManager.ErrorCount);

            Assert.AreEqual("Field1", dt.Columns[0].ColumnName);
            Assert.AreEqual("Field2", dt.Columns[1].ColumnName);
            Assert.AreEqual("Field3", dt.Columns[2].ColumnName);

            Assert.AreEqual("Hola", dt.Rows[0][1]);
            Assert.AreEqual(DateTime.Today, dt.Rows[2][0]);
        }
Exemplo n.º 8
0
        public void TestingNameAndTypes()
        {
            var cb = new DelimitedClassBuilder("Customers", ",");

            cb.IgnoreFirstLines = 1;
            cb.IgnoreEmptyLines = true;

            cb.AddField("Field1", typeof(DateTime));
            cb.LastField.TrimMode       = TrimMode.Both;
            cb.LastField.QuoteMode      = QuoteMode.AlwaysQuoted;
            cb.LastField.FieldNullValue = DateTime.Today;

            cb.AddField("Field2", typeof(string));
            cb.LastField.FieldQuoted = true;
            cb.LastField.QuoteChar   = '"';

            cb.AddField("Field3", typeof(int));

            engine = new FileHelperEngine(cb.CreateRecordClass());

            DataTable dt = engine.ReadFileAsDT(TestCommon.GetPath("Good", "Test2.txt"));

            Assert.AreEqual("Field1", dt.Columns[0].ColumnName);
            Assert.AreEqual(typeof(DateTime), dt.Columns[0].DataType);

            Assert.AreEqual("Field2", dt.Columns[1].ColumnName);
            Assert.AreEqual(typeof(string), dt.Columns[1].DataType);

            Assert.AreEqual("Field3", dt.Columns[2].ColumnName);
            Assert.AreEqual(typeof(int), dt.Columns[2].DataType);
        }
Exemplo n.º 9
0
        static void RunTimeRecords()
        {
            Console.WriteLine("Run Time Records now =) ...");
            Console.WriteLine();

            DelimitedClassBuilder cb = new DelimitedClassBuilder("Customer", ",");

            cb.AddField("CustId", typeof(Int32));
            cb.AddField("Name", typeof(string));
            cb.AddField("Balance", typeof(Decimal));
            cb.AddField("AddedDate", typeof(DateTime));
            cb.LastField.Converter.Kind = ConverterKind.Date;
            cb.LastField.Converter.Arg1 = "ddMMyyyy";


            // Estas dos lineas son el uso de la librería
            FileHelperEngine engine = new FileHelperEngine(cb.CreateRecordClass());

            DataTable dt = engine.ReadFileAsDT(@"..\Data\CustomersDelimited.txt");

            // Aqui es donde ustedes agregan su código
            foreach (DataRow dr in dt.Rows)
            {
                Console.WriteLine("Customer: " + dr[0].ToString() + " - " + dr[1].ToString());
            }
        }
Exemplo n.º 10
0
        public void SaveLoadXmlFileDelimited2()
        {
            var cb = new DelimitedClassBuilder("Customers", ",");

            cb.IgnoreFirstLines = 1;
            cb.IgnoreEmptyLines = true;

            cb.AddField("Field1", typeof(DateTime));
            cb.LastField.TrimMode       = TrimMode.Both;
            cb.LastField.QuoteMode      = QuoteMode.AlwaysQuoted;
            cb.LastField.FieldNullValue = DateTime.Today;

            cb.AddField("FieldTwo", typeof(string));
            cb.LastField.FieldQuoted = true;
            cb.LastField.QuoteChar   = '"';

            cb.AddField("Field333", typeof(int));

            cb.SaveToXml(@"runtime.xml");

            engine = new FileHelperEngine(ClassBuilder.ClassFromXmlFile("runtime.xml"));

            Assert.AreEqual("Customers", engine.RecordType.Name);
            Assert.AreEqual(3, engine.RecordType.GetFields().Length);
            Assert.AreEqual("Field1", engine.RecordType.GetFields()[0].Name);
        }
Exemplo n.º 11
0
        public DelimitedClassBuilder BuildNSECMPFile()
        {
            DelimitedClassBuilder cb = new DelimitedClassBuilder("CMPFILE", ",");

            cb.IgnoreFirstLines = 0;


            cb.AddField("Symbol", typeof(string));
            cb.AddField("Series", typeof(string));
            cb.AddField("Open", typeof(double));
            cb.AddField("High", typeof(double));
            cb.AddField("Low", typeof(double));
            cb.AddField("Close", typeof(double));
            cb.AddField("Last", typeof(double));
            cb.AddField("PrevClose", typeof(double));
            cb.AddField("Tottrdqty", typeof(int));
            cb.AddField("Tottrdval", typeof(double));
            cb.AddField("Timestamp", typeof(string));
            cb.AddField("Totaltrades", typeof(int));
            cb.AddField("Isin", typeof(string));
            cb.AddField("OI", typeof(int));
            cb.LastField.FieldNullValue = 0;

            return(cb);
        }
Exemplo n.º 12
0
        private void CreateDelimiterOptions(string[][] sampleData, List <RecordFormatInfo> res, char delimiter)
        {
            List <DelimiterInfo> delimiters = new List <DelimiterInfo>();

            if (delimiter == '\0')
            {
                delimiters = GetDelimiters(sampleData);
            }
            else
            {
                delimiters.Add(GetDelimiterInfo(sampleData, delimiter));
            }

            foreach (DelimiterInfo info in delimiters)
            {
                RecordFormatInfo format = new RecordFormatInfo();
                format.mConfidence = (int)((1 - info.Deviation) * 100);
                AdjustConfidence(format, info);

                DelimitedClassBuilder builder = new DelimitedClassBuilder("AutoDetectedClass", info.Delimiter.ToString());
                builder.AddFields(info.AvergeByLine + 1);

                format.mClassBuilder = builder;

                res.Add(format);
            }
        }
Exemplo n.º 13
0
        public void RunTimeNullableFields()
        {
            DelimitedClassBuilder cb = new DelimitedClassBuilder("ImportContact", ",");

            cb.AddField("Field1", "int?");
            cb.AddField("Field2", typeof(int?));
            cb.AddField("Field3", "Nullable<int>");
            cb.AddField("Field4", typeof(Nullable <int>));
        }
Exemplo n.º 14
0
        // DELIMITED

        private void CreateDelimiterOptions(string[][] sampleData, List <RecordFormatInfo> res, char delimiter = '\0')
        {
            var delimiters = new List <DelimiterInfo>();

            if (delimiter == '\0')
            {
                delimiters = GetDelimiters(sampleData);
            }
            else
            {
                delimiters.Add(GetDelimiterInfo(sampleData, delimiter));
            }

            foreach (var info in delimiters)
            {
                var format = new RecordFormatInfo {
                    mConfidence = (int)((1 - info.Deviation) * 100)
                };
                AdjustConfidence(format, info);
                var fileHasHeaders = false;
                if (FileHasHeaders.HasValue)
                {
                    fileHasHeaders = FileHasHeaders.Value;
                }
                else
                {
                    fileHasHeaders = DetectIfContainsHeaders(info, sampleData);
                }
                var builder = new DelimitedClassBuilder("AutoDetectedClass", info.Delimiter.ToString())
                {
                    IgnoreFirstLines = fileHasHeaders
                        ? 1
                        : 0
                };

                var firstLineSplitted = sampleData[0][0].Split(info.Delimiter);
                for (int i = 0; i < info.Max + 1; i++)
                {
                    string name = "Field " + (i + 1).ToString().PadLeft(3, '0');
                    if (fileHasHeaders && i < firstLineSplitted.Length)
                    {
                        name = firstLineSplitted[i];
                    }

                    var f = builder.AddField(StringHelper.ToValidIdentifier(name));
                    if (i > info.Min)
                    {
                        f.FieldOptional = true;
                    }
                }

                format.mClassBuilder = builder;

                res.Add(format);
            }
        }
Exemplo n.º 15
0
        public ReadUsersFromFileDynamic()
        {
            var userRecordClassBuilder = new DelimitedClassBuilder("UserRecord", "\t");

            userRecordClassBuilder.IgnoreFirstLines = 1;
            userRecordClassBuilder.AddField("Id", typeof(Int32));
            userRecordClassBuilder.AddField("Name", typeof(String));
            userRecordClassBuilder.AddField("Email", typeof(String));
            _tblClass = userRecordClassBuilder.CreateRecordClass();
        }
Exemplo n.º 16
0
        protected override void PrepareType(Entity entity)
        {
            var builder = new DelimitedClassBuilder("Tfl" + entity.OutputName())
            {
                IgnoreEmptyLines = true, Delimiter = " ", IgnoreFirstLines = 0
            };

            builder.AddField(_htmlField, typeof(string));
            Type = builder.CreateRecordClass();
        }
Exemplo n.º 17
0
        public void RunTimeGenerics()
        {
            DelimitedClassBuilder cb = new DelimitedClassBuilder("ImportContact", ",");

            cb.AddField("Field2", typeof(Dictionary <int, List <string> >));
            cb.AddField("Field1", "List<int>");
            cb.AddField("Field2", typeof(List <int>));
            cb.AddField("Field3", "Nullable<int>");
            cb.AddField("Field4", typeof(Nullable <int>));
        }
Exemplo n.º 18
0
        protected void Page_Load(object sender, EventArgs e)
        {
            DelimitedClassBuilder cb = new DelimitedClassBuilder("Prices", ";");

            // cb.IgnoreFirstLines = 1;
            cb.AddField("CodGrundfos", typeof(string));
            cb.AddField("CodProv", typeof(string));
            cb.AddField("Modelo", typeof(string));
            cb.AddField("Descripcion", typeof(string));
            cb.AddField("Proveedor", typeof(string));
            cb.AddField("Frecuencia", typeof(string));
            cb.LastField.FieldOptional = true;
            cb.AddField("TP");
            cb.LastField.FieldType      = "Nullable < System.Decimal >";
            cb.LastField.FieldNullValue = null;
            cb.LastField.FieldOptional  = true;
            cb.LastField.Converter.Kind = ConverterKind.AnyDecimal;
            cb.AddField("MonedaTP", typeof(string));
            cb.LastField.FieldOptional = true;
            cb.AddField("GRP", typeof(string));
            cb.LastField.FieldType      = "Nullable < System.Decimal >";
            cb.LastField.FieldNullValue = null;
            cb.LastField.FieldOptional  = true;
            cb.LastField.Converter.Kind = ConverterKind.AnyDecimal;
            cb.AddField("MonedaGRP", typeof(string));
            cb.LastField.FieldOptional = true;
            cb.AddField("PL", typeof(string));
            cb.LastField.FieldType      = "Nullable < System.Decimal >";
            cb.LastField.FieldNullValue = null;
            cb.LastField.FieldOptional  = true;
            cb.LastField.Converter.Kind = ConverterKind.AnyDecimal;
            cb.AddField("MonedaPL", typeof(string));
            cb.LastField.FieldOptional = true;
            cb.AddField("Familia", typeof(string));
            cb.LastField.FieldOptional = true;
            cb.AddField("Tipo", typeof(string));
            cb.LastField.FieldOptional = true;
            cb.AddField("Linea", typeof(string));
            cb.LastField.FieldOptional = true;
            cb.IgnoreEmptyLines        = true;

            FileHelperEngine engine = new FileHelperEngine(cb.CreateRecordClass());

            object[] items = engine.ReadFile(Server.MapPath("~/TesterSeba2.csv"));

            object o = items[0];

            Response.Write(o.GetType().GetField("CodGrundfos").GetValue(o));
            Response.Write("<br>");
            Response.Write(o.GetType().GetField("TP").GetValue(o));
            Response.Write("<br>");

            o = items[1];
            Response.Write(o.GetType().GetField("TP").GetValue(o));
        }
Exemplo n.º 19
0
        public void ReadAsDataTable1()
        {
            DelimitedClassBuilder cb = new DelimitedClassBuilder("ImportContact", ",");

            cb.IgnoreEmptyLines   = true;
            cb.GenerateProperties = true;

            cb.AddField("FirstName", typeof(string));
            cb.LastField.TrimMode    = FileHelpers.TrimMode.Both;
            cb.LastField.FieldQuoted = false;

            cb.AddField("LastName", typeof(string));
            cb.LastField.TrimMode    = TrimMode.Both;
            cb.LastField.FieldQuoted = false;

            cb.AddField("StreetNumber", typeof(string));
            cb.LastField.TrimMode    = TrimMode.Both;
            cb.LastField.FieldQuoted = false;

            cb.AddField("StreetAddress", typeof(string));
            cb.LastField.TrimMode    = TrimMode.Both;
            cb.LastField.FieldQuoted = false;

            cb.AddField("Unit", typeof(string));
            cb.LastField.TrimMode    = TrimMode.Both;
            cb.LastField.FieldQuoted = false;

            cb.AddField("City", typeof(string));
            cb.LastField.TrimMode    = TrimMode.Both;
            cb.LastField.FieldQuoted = false;

            cb.AddField("State", typeof(string));
            cb.LastField.TrimMode    = TrimMode.Both;
            cb.LastField.FieldQuoted = false;

            cb.AddField("Zip", typeof(string));
            cb.LastField.TrimMode    = TrimMode.Both;
            cb.LastField.FieldQuoted = false;

            var engine = new FileHelperEngine(cb.CreateRecordClass());

            string source = "Alex & Jen,Bouquet,1815,Bell Rd,, Batavia,OH,45103" + Environment.NewLine +
                            "Mark & Lisa K ,Arlinghaus,1817,Bell Rd,, Batavia,OH,45103" + Environment.NewLine +
                            "Ed & Karen S ,Craycraft,1819,Bell Rd,, Batavia,OH,45103" + Environment.NewLine;

            DataTable contactData = engine.ReadStringAsDT(source);

            Assert.AreEqual(3, contactData.Rows.Count);
            Assert.AreEqual(8, contactData.Columns.Count);

            Assert.AreEqual("Alex & Jen", contactData.Rows[0][0].ToString());
            Assert.AreEqual("Mark & Lisa K", contactData.Rows[1][0].ToString());

            // new DelimitedClassBuilder("", ",");
        }
        private DelimitedClassBuilder ExamineGridForColumnOrder(string delimiter)
        {
            DelimitedClassBuilder classBuilder = new DelimitedClassBuilder("ProposedOrders", delimiter);

            foreach (Column column in grid.VisibleColumns.Where(column => column.Visible && column.FieldName != "ErrorString"))
            {
                classBuilder.AddField(column.FieldName, typeof(string));
                classBuilder.LastField.TrimMode    = TrimMode.Both;
                classBuilder.LastField.FieldQuoted = true;
            }
            return(classBuilder);
        }
Exemplo n.º 21
0
        public void RunTimeGenerics()
        {
            var cb = new DelimitedClassBuilder("ImportContact", ",");

            cb.AddField("Field2", typeof(Dictionary <int, List <string> >));
            cb.AddField("Field1", "System.Collections.Generic.List<int>");
            cb.AddField("Field7", typeof(List <int>));
            cb.AddField("Field3", "Nullable<int>");
            cb.AddField("Field4", typeof(Nullable <int>));

            cb.CreateRecordClass();
        }
Exemplo n.º 22
0
        public void RunTimeMultimpleInstances()
        {
            var cb = new DelimitedClassBuilder("ImportContact", ",");

            cb.AddField("Field1", "int?");
            cb.AddField("Field2", typeof(int?));
            cb.AddField("Field3", "Nullable<int>");
            cb.AddField("Field4", typeof(Nullable <int>));

            cb.CreateRecordClass();
            cb.CreateRecordClass();
        }
Exemplo n.º 23
0
        public static FileHelperAsyncEngine Create(OutputContext context)
        {
            var delimiter = string.IsNullOrEmpty(context.Connection.Delimiter) ? "," : context.Connection.Delimiter;

            var builder = new DelimitedClassBuilder(Utility.Identifier(context.Entity.OutputTableName(context.Process.Name)))
            {
                IgnoreEmptyLines = true,
                Delimiter        = delimiter,
                IgnoreFirstLines = 0
            };

            foreach (var field in context.OutputFields)
            {
                var fieldBuilder = builder.AddField(field.FieldName(), typeof(string));
                fieldBuilder.FieldQuoted   = true;
                fieldBuilder.QuoteChar     = context.Connection.TextQualifier;
                fieldBuilder.QuoteMode     = QuoteMode.OptionalForBoth;
                fieldBuilder.FieldOptional = field.Optional;
            }

            FileHelpers.ErrorMode errorMode;
            Enum.TryParse(context.Connection.ErrorMode, true, out errorMode);

            FileHelperAsyncEngine engine;

            if (context.Connection.Header == Constants.DefaultSetting)
            {
                var headerText = string.Join(delimiter, context.OutputFields.Select(f => f.Label.Replace(delimiter, " ")));
                engine = new FileHelperAsyncEngine(builder.CreateRecordClass())
                {
                    ErrorMode  = errorMode,
                    HeaderText = headerText,
                    FooterText = context.Connection.Footer
                };
            }
            else
            {
                engine = new FileHelperAsyncEngine(builder.CreateRecordClass())
                {
                    ErrorMode = errorMode
                };
                if (context.Connection.Header != string.Empty)
                {
                    engine.HeaderText = context.Connection.Header;
                }
                if (context.Connection.Footer != string.Empty)
                {
                    engine.FooterText = context.Connection.Footer;
                }
            }

            return(engine);
        }
Exemplo n.º 24
0
        private DelimitedClassBuilder CreateClassBuilder(char separationChar, bool haveHeader)
        {
            DelimitedClassBuilder cb = new DelimitedClassBuilder("TmpPriceImport", separationChar.ToString());

            if (haveHeader)
            {
                cb.IgnoreFirstLines = 1;
            }
            cb.AddField("CodGrundfos", typeof(string));
            cb.LastField.FieldOptional = true;
            cb.AddField("CodProv", typeof(string));
            cb.LastField.FieldOptional = true;
            cb.AddField("Modelo", typeof(string));
            cb.LastField.FieldOptional = true;
            cb.AddField("Descripcion", typeof(string));
            cb.LastField.FieldOptional = true;
            cb.AddField("Proveedor", typeof(string));
            cb.LastField.FieldOptional = true;
            cb.AddField("Frecuencia", typeof(string));
            cb.LastField.FieldOptional = true;
            cb.AddField("TP");
            cb.LastField.FieldType      = "Nullable < System.Decimal >";
            cb.LastField.FieldNullValue = null;
            cb.LastField.FieldOptional  = true;
            cb.LastField.Converter.Kind = ConverterKind.AnyDecimal;
            cb.AddField("MonedaTP", typeof(string));
            cb.LastField.FieldOptional = true;
            cb.AddField("GRP");
            cb.LastField.FieldType      = "Nullable < System.Decimal >";
            cb.LastField.FieldNullValue = null;
            cb.LastField.FieldOptional  = true;
            cb.LastField.Converter.Kind = ConverterKind.AnyDecimal;
            cb.AddField("MonedaGRP", typeof(string));
            cb.LastField.FieldOptional = true;
            cb.AddField("PL");
            cb.LastField.FieldType      = "Nullable < System.Decimal >";
            cb.LastField.FieldNullValue = null;
            cb.LastField.FieldOptional  = true;
            cb.LastField.Converter.Kind = ConverterKind.AnyDecimal;
            cb.AddField("MonedaPL", typeof(string));
            cb.LastField.FieldOptional = true;
            cb.AddField("Familia", typeof(string));
            cb.LastField.FieldOptional = true;
            cb.AddField("Tipo", typeof(string));
            cb.LastField.FieldOptional = true;
            cb.AddField("Linea", typeof(string));
            cb.LastField.FieldOptional = true;

            cb.IgnoreEmptyLines = true;

            return(cb);
        }
Exemplo n.º 25
0
        public void LoopingFields()
        {
            var cb = new DelimitedClassBuilder("MyClass", ",");

            string[] lst = { "fieldOne", "fieldTwo", "fieldThree" };

            for (int i = 0; i < lst.Length; i++)
            {
                cb.AddField(lst[i].ToString(), typeof(string));
            }

            var engineTemp = new FileHelperEngine(cb.CreateRecordClass());
        }
Exemplo n.º 26
0
        public void ReadAsDataTable2()
        {
            DelimitedClassBuilder cb = new DelimitedClassBuilder("ImportContact", ",");

            cb.IgnoreEmptyLines   = true;
            cb.GenerateProperties = true;

            cb.AddField("FirstName", typeof(string));
            cb.LastField.TrimMode    = FileHelpers.TrimMode.Both;
            cb.LastField.FieldQuoted = false;

            cb.AddField("LastName", typeof(string));
            cb.LastField.TrimMode    = TrimMode.Both;
            cb.LastField.FieldQuoted = false;

            cb.AddField("StreetNumber", typeof(string));
            cb.LastField.TrimMode    = TrimMode.Both;
            cb.LastField.FieldQuoted = false;

            cb.AddField("StreetAddress", typeof(string));
            cb.LastField.TrimMode    = TrimMode.Both;
            cb.LastField.FieldQuoted = false;

            cb.AddField("Unit", typeof(string));
            cb.LastField.TrimMode    = TrimMode.Both;
            cb.LastField.FieldQuoted = false;

            cb.AddField("City", typeof(string));
            cb.LastField.TrimMode    = TrimMode.Both;
            cb.LastField.FieldQuoted = false;

            cb.AddField("State", typeof(string));
            cb.LastField.TrimMode    = TrimMode.Both;
            cb.LastField.FieldQuoted = false;

            cb.AddField("Zip", typeof(string));
            cb.LastField.TrimMode    = TrimMode.Both;
            cb.LastField.FieldQuoted = false;

            var engine = new FileHelperEngine(cb.CreateRecordClass());

            DataTable contactData = engine.ReadFileAsDT(TestCommon.GetPath("Good", "ReadAsDataTable.txt"));

            Assert.AreEqual(3, contactData.Rows.Count);
            Assert.AreEqual(8, contactData.Columns.Count);

            Assert.AreEqual("Alex & Jen", contactData.Rows[0][0].ToString());
            Assert.AreEqual("Mark & Lisa K", contactData.Rows[1][0].ToString());

            // new DelimitedClassBuilder("", ",");
        }
Exemplo n.º 27
0
        private void ClassBuilder(int ignoreLines, IDictionary <int, string> fieldNames, char[] separator)
        {
            var builder = new DelimitedClassBuilder("UserRecord", separator[0].ToString())
            {
                IgnoreFirstLines = ignoreLines
            };


            foreach (var field in fieldNames.OrderBy(x => x.Key))
            {
                builder.AddField(field.Value, typeof(string));
            }

            InputType = builder.CreateRecordClass();
        }
        private void PasteFromClip()
        {
            DelimitedClassBuilder classBuilder = ExamineGridForColumnOrder("\t");

            try
            {
                FileHelperEngine engine = new FileHelperEngine(classBuilder.CreateRecordClass());
                DataTable        dt     = engine.ReadStringAsDT(Clipboard.GetText());
                PasteDataTable(dt);
            }
            catch (Exception ex)
            {
                throw ex;
                //addInBase.MessageService.LogMessage(new ApplicationMessage(ex, ApplicationMessageType.ErrorNoPopup));
            }
        }
        private static void Main(string[] args)
        {
            var cb = new DelimitedClassBuilder("Customer", ",");

            cb.AddField("SomeField", typeof(String));
            cb.LastField.Converter.TypeName = typeof(OtherNameSpace.MyConverter).ToString();

            Type recordClass = cb.CreateRecordClass();

            var engine  = new FileHelperEngine(recordClass);
            var records = engine.ReadStringAsDT("aaa");

            Assert.AreEqual("aaa", records.Rows[0].Field <string>(0));

            Console.WriteLine("All OK");
            Console.ReadKey();
        }
        public DelimitedFileWriter(OutputContext context, string fileName = null)
        {
            _context  = context;
            _fileName = fileName;
            _builder  = new DelimitedClassBuilder(Utility.Identifier(context.Entity.OutputTableName(context.Process.Name)))
            {
                IgnoreEmptyLines = true,
                Delimiter        = context.Connection.Delimiter,
                IgnoreFirstLines = 0
            };

            foreach (var field in context.OutputFields)
            {
                var fieldBuilder = _builder.AddField(field.FieldName(), typeof(string));
                fieldBuilder.FieldQuoted   = true;
                fieldBuilder.QuoteChar     = context.Connection.TextQualifier;
                fieldBuilder.QuoteMode     = QuoteMode.OptionalForBoth;
                fieldBuilder.FieldOptional = field.Optional;
            }
        }