Example #1
0
        static void LoadTest()
        {
            using (var stream = new MemoryStream())
                using (var reader = new StreamReader(stream))
                    using (var writer = new StreamWriter(stream))
                        using (var parser = new ChoManifoldReader(reader).WithFirstLineHeader())
                        {
                            parser.WithCustomRecordSelector((value) =>
                            {
                                string recordLine = value as string;
                                if (recordLine.Length == 0)
                                {
                                    return(null);
                                }

                                if (Char.IsLetter(recordLine[0]))
                                {
                                    return(typeof(Customer));
                                }
                                else if (recordLine.Length == 14)
                                {
                                    return(typeof(SampleType));
                                }
                                else
                                {
                                    return(typeof(Orders));
                                }
                            });
                            //parser.Configuration[typeof(ExpandoObject)] = new ChoCSVRecordConfiguration();

                            writer.WriteLine("Header");
                            writer.WriteLine("10248|VINET|5|04071996|01081996|16071996|3|32.38  ");
                            writer.WriteLine("10249|TOMSP|6|05071996|16081996|10071996|1|11.61");
                            writer.WriteLine("ALFKI;Alfreds Futterkiste;Maria Anders;Sales Representative;Obere Str. 57;Berlin;Germany");
                            writer.WriteLine("ANATR;Ana Trujillo Emparedados y helados;Ana Trujillo;Owner;Avda. de la Constitución 2222;México D.F.;Mexico");
                            writer.WriteLine("10250|HANAR|4|08071996|05081996|12071996|2|65.83");
                            writer.WriteLine("10111314012345");
                            writer.WriteLine("11101314123456");
                            writer.WriteLine("10251|VICTE|3|08071996|05081996|15071996|1|41.34");
                            writer.WriteLine("11121314901234");
                            writer.WriteLine("10101314234567");
                            writer.WriteLine("ANTON;Antonio Moreno Taquería;Antonio Moreno;Owner;Mataderos  2312;México D.F.;Mexico");
                            writer.WriteLine("BERGS;Berglunds snabbköp;Christina Berglund;Order Administrator;Berguvsvägen  8;Luleå;Sweden");

                            writer.Flush();
                            stream.Position = 0;

                            object rec;
                            while ((rec = parser.Read()) != null)
                            {
                                Console.WriteLine(rec.ToStringEx());
                            }
                        }
        }
Example #2
0
        ////[Test]
        public static void LoadTest()
        {
            List <object> expected = new List <object>
            {
                new Orders {
                    OrderID = 10248, CustomerID = "VINET", EmployeeID = 5, OrderDate = new DateTime(1996, 7, 4), RequiredDate = "01081996", ShippedDate = "16071996", ShipVia = 3, Freight = (decimal)32.38
                },
                new Orders {
                    OrderID = 10249, CustomerID = "TOMSP", EmployeeID = 6, OrderDate = new DateTime(1996, 7, 5), RequiredDate = "16081996", ShippedDate = "10071996", ShipVia = 1, Freight = (decimal)11.61
                },
                new Customer {
                    CustomerID = "ALFKI", CompanyName = "Alfreds Futterkiste", ContactName = "Maria Anders", ContactTitle = "Sales Representative", Address = "Obere Str. 57", City = "Berlin", Country = "Germany"
                },
                new Customer {
                    CustomerID = "ANATR", CompanyName = "Ana Trujillo Emparedados y helados", ContactName = "Ana Trujillo", ContactTitle = "Owner", Address = "Avda. de la Constitución 2222", City = "México D.F.;", Country = "Mexico"
                },
                new Orders {
                    OrderID = 10250, CustomerID = "HANAR", EmployeeID = 4, OrderDate = new DateTime(1996, 7, 8), RequiredDate = "05081996", ShippedDate = "12071996", ShipVia = 2, Freight = (decimal)65.83
                },
                new SampleType {
                    Field1 = "10111314", Field2 = "012", Field3 = 345
                },
                new SampleType {
                    Field1 = "11101314", Field2 = "123", Field3 = 456
                },
                new Orders {
                    OrderID = 10251, CustomerID = "VICTE", EmployeeID = 3, OrderDate = new DateTime(1996, 7, 8), RequiredDate = "05081996", ShippedDate = "15071996", ShipVia = 1, Freight = (decimal)41.34
                },
                new SampleType {
                    Field1 = "11121314", Field2 = "901", Field3 = 234
                },
                new SampleType {
                    Field1 = "10101314", Field2 = "234", Field3 = 567
                },
                new Customer {
                    CustomerID = "ANTON", CompanyName = "Antonio Moreno Taquería", ContactName = "Antonio Moreno", ContactTitle = "Owner", Address = "Mataderos  2312", City = "México D.F.", Country = "Mexico"
                },
                new Customer {
                    CustomerID = "BERGS", CompanyName = "Berglunds snabbköp", ContactName = "Christina Berglund", ContactTitle = "Order Administrator", Address = "Berguvsvägen  8", City = "Luleå", Country = "Sweden"
                }
            };
            List <object> actual = new List <object>();

            using (var stream = new MemoryStream())
                using (var reader = new StreamReader(stream))
                    using (var writer = new StreamWriter(stream))
                        using (var parser = new ChoManifoldReader(reader).WithFirstLineHeader())
                        {
                            parser.WithCustomRecordSelector((value) =>
                            {
                                string recordLine = value as string;
                                if (recordLine.Length == 0)
                                {
                                    return(null);
                                }

                                if (Char.IsLetter(recordLine[0]))
                                {
                                    return(typeof(Customer));
                                }
                                else if (recordLine.Length == 14)
                                {
                                    return(typeof(SampleType));
                                }
                                else
                                {
                                    return(typeof(Orders));
                                }
                            });
                            //parser.Configuration[typeof(ExpandoObject)] = new ChoCSVRecordConfiguration();

                            writer.WriteLine("Header");
                            writer.WriteLine("10248|VINET|5|04071996|01081996|16071996|3|32.38  ");
                            writer.WriteLine("10249|TOMSP|6|05071996|16081996|10071996|1|11.61");
                            writer.WriteLine("ALFKI;Alfreds Futterkiste;Maria Anders;Sales Representative;Obere Str. 57;Berlin;Germany");
                            writer.WriteLine("ANATR;Ana Trujillo Emparedados y helados;Ana Trujillo;Owner;Avda. de la Constitución 2222;México D.F.;Mexico");
                            writer.WriteLine("10250|HANAR|4|08071996|05081996|12071996|2|65.83");
                            writer.WriteLine("10111314012345");
                            writer.WriteLine("11101314123456");
                            writer.WriteLine("10251|VICTE|3|08071996|05081996|15071996|1|41.34");
                            writer.WriteLine("11121314901234");
                            writer.WriteLine("10101314234567");
                            writer.WriteLine("ANTON;Antonio Moreno Taquería;Antonio Moreno;Owner;Mataderos  2312;México D.F.;Mexico");
                            writer.WriteLine("BERGS;Berglunds snabbköp;Christina Berglund;Order Administrator;Berguvsvägen  8;Luleå;Sweden");

                            writer.Flush();
                            stream.Position = 0;

                            object rec;
                            while ((rec = parser.Read()) != null)
                            {
                                actual.Add(rec);
//                    Console.WriteLine(rec.ToStringEx());
                            }
                        }

            CollectionAssert.AreEqual(expected, actual);
        }