Esempio n. 1
0
        public void ExampleC1()
        {
            var file = GetTestFilePath.FromDirectory(CsvFiles)
                       .AndFileName("ExampleC.csv");

            var csv = Read.Csv.FromFile(file)
                      .With.ColumnsDelimiter("\t")
                      .ThatReturns.ArrayOf <(int Id, string PhoneNumber, string CustomEnum, string Address)>()
                      .Put.Column(0).As <int>().Into(a => a.Id)
                      .Put.Column(1).MakingSureThat(PhoneNumberIsValid).Into(a => a.PhoneNumber)
                      .Put.Column(2).MakingSureThat(EnumIsValid).InThisWay(a => a.Replace("|", " and ")).Into(a => a.CustomEnum)
                      .Put.Column(3).Into(a => a.Address)
                      .GetAll();

            Debug.WriteLine("CSV DATA");
            csv.ResultSet.ForEach(a => Debug.WriteLine($"id = {a.Id}, Phone = {a.PhoneNumber}, Enum = {a.CustomEnum}, Address = {a.Address}"));

            Debug.WriteLine("ERRORS");
            csv.Errors.ForEach(e => Debug.WriteLine($"Error at line {e.LineNumber} column index {e.ColumnZeroBasedIndex} : {e.ErrorMessage}"));

            Data PhoneNumberIsValid(string phone)
            => Regex.IsMatch(phone, "[0-9]{10}")
                ? Data.Valid
                : Data.Invalid("Phone number is invalid");

            Data EnumIsValid(string @enum)
            => @enum.Split('|').ToList().TrueForAll(a => a == "A" || a == "B" || a == "F")
                            ? Data.Valid
                            : Data.Invalid("Invalid enum character");
        }
Esempio n. 2
0
        public void LoadAnnuaireDebitTabacWithTuple()
        {
            var sourceFile = GetTestFilePath
                             .FromDirectory("CsvFiles")
                             .AndFileName("annuaire-des-debits-de-tabac.csv");

            var result = Read.Csv.FromFile(sourceFile)
                         .ThatReturns.ArrayOf <(int Id, string Enseigne, string Cp)>()
                         .Put.Column("ID").As <int>().Into(a => a.Id)
                         .Put.Column("ENSEIGNE").MakingSureThat(IsTabac).Into(a => a.Enseigne)
                         .Put.Column("CODE POSTAL").Into(a => a.Cp)
                         .GetAll();

            result.Errors.Should().HaveCount(14510);
            result.ResultSet.Should().HaveCount(11263);

            var testLine = result.ResultSet.First(a => a.Id == 565);

            testLine.Id.Should().Be(565);
            testLine.Enseigne.Should().Be("Tabac");
            testLine.Cp.Should().Be("03800");

            Data IsTabac(string arg)
            => arg == "Tabac"
                                ? Data.Valid
                                : Data.Invalid("is not a tabac");
        }
Esempio n. 3
0
        public void ExampleB()
        {
            const string input = "NAME-name#Smith-Bob#Rob\"in-Wiliam";

            var csv = Read.Csv.FromString(input)
                      .With.EndOfLineDelimiter("#")
                      .And.ColumnsDelimiter("-")
                      .And.Header(As.CaseSensitive)
                      .And.SimpleParsingMode()
                      .ThatReturns.ArrayOf <(string FirstName, string LastName)>()
                      .Put.Column("NAME").Into(a => a.FirstName)
                      .Put.Column("name").Into(a => a.LastName)
                      .GetAll();

            Debug.WriteLine("CSV DATA");
            csv.ResultSet.ForEach(a => Debug.WriteLine($"{a.FirstName} {a.LastName}"));
        }
Esempio n. 4
0
        public void Sample1()
        {
            var file = GetTestFilePath.FromDirectory(CsvFiles)
                       .AndFileName("Sample1.csv");

            var csv = Read.Csv.FromFile(file)
                      .ThatReturns.ArrayOf <(string Name, int Age)>()
                      .Put.Column("name").Into(a => a.Name)
                      .Put.Column("age").As <int>().Into(a => a.Age)
                      .GetAll();

            Debug.WriteLine("CSV DATA");
            csv.ResultSet.ForEach(r => Debug.WriteLine($"Name : {r.Name} - Age : {r.Age}"));

            Debug.WriteLine("ERRORS");
            csv.Errors.ForEach(e => Debug.WriteLine($"Error at line {e.LineNumber} column index {e.ColumnZeroBasedIndex} : {e.ErrorMessage}"));
        }