Exemple #1
0
        public async Task TestSetTypedValues()
        {
            var csvData =
                "A;22" + Environment.NewLine +
                "B;Text" + Environment.NewLine +
                "C;true" + Environment.NewLine +
                "D;01.01.2010";

            var sb = new StringBuilder();

            using var csvWriter = new CsvWriter(sb);

            var csvDictionary = new CsvDictionary();

            csvDictionary.SetFormats<DateTime>("dd.MM.yyyy");
            csvDictionary.SetTrueFalseString<bool>("true", "false");

            csvDictionary.SetValue("A", 22);
            csvDictionary.SetValue("B", "Text");
            csvDictionary.SetValue("C", true);
            csvDictionary.SetValue("D", new DateTime(2010, 1, 1));

            await csvDictionary.StoreAsync(csvWriter);

            Assert.Equal(csvData, sb.ToString());
        }
Exemple #2
0
        public async Task SmokeTest()
        {
            var csvData =
                "A;a" + Environment.NewLine +
                "B;b" + Environment.NewLine +
                "C;c";

            var sb = new StringBuilder();

            using var csvWriter = new CsvWriter(sb);

            var csvDictionary = new CsvDictionary();

            csvDictionary["A"] = "a";
            csvDictionary["B"] = "b";
            csvDictionary["C"] = "c";

            await csvDictionary.StoreAsync(csvWriter);

            Assert.Equal(csvData, sb.ToString());

            using var csvReader = new CsvReader(csvData);

            Assert.NotNull(csvDictionary);

            await csvDictionary.LoadAsync(csvReader);

            Assert.Equal("a", csvDictionary["A"]);
            Assert.Equal("b", csvDictionary["B"]);
            Assert.Equal("c", csvDictionary["C"]);
        }
        internal static void LoadAppropriateSettings(GrblCore.GrblVersionInfo value)
        {
            try
            {
                string ResourceName;
                if (value.IsOrtur && value.OrturFWVersionNumber >= 170)
                {
                    ResourceName = String.Format("LaserGRBL.CSV.setting_codes.ortur.v1.7.x.csv");
                }
                else if (value.IsOrtur && value.OrturFWVersionNumber >= 150)
                {
                    ResourceName = String.Format("LaserGRBL.CSV.setting_codes.ortur.v1.5.x.csv");
                }
                else if (value.IsOrtur)
                {
                    ResourceName = String.Format("LaserGRBL.CSV.setting_codes.ortur.v1.4.x.csv");
                }
                else
                {
                    ResourceName = String.Format("LaserGRBL.CSV.setting_codes.v{0}.{1}.csv", value.Major, value.Minor);
                }


                Settings = new CsvDictionary(ResourceName, 3);
            }
            catch { }
        }
Exemple #4
0
 internal static void LoadAppropriateSettings(GrblCore.GrblVersionInfo value)
 {
     try
     {
         string ResourceName = String.Format("LaserGRBL.CSV.setting_codes.v{0}.{1}.csv", value.Major, value.Minor);
         Settings = new CsvDictionary(ResourceName, 3);
     }
     catch { }
 }
Exemple #5
0
        public async Task TestEmpty()
        {
            var csvData = "";

            using var csvReader = new CsvReader(csvData);

            var csvDictionary = new CsvDictionary();

            Assert.NotNull(csvDictionary);

            await csvDictionary.LoadAsync(csvReader);
            Assert.Equal(0, csvDictionary.Count);
        }
Exemple #6
0
        public IEnumerable <CsvDictionary> CsvToDictionaries(
            IEnumerable <char> characters,
            IEqualityComparer <string> keyComparer = null)
        {
            var rows = ReadCsvRows(characters);

            var rowsEnum = rows.GetEnumerator();

            if (!rowsEnum.MoveNext())
            {
                yield break;
            }

            ReadOnlyStrings headerNames;

            if (CsvOptions.UseHeaderRow)
            {
                headerNames = rowsEnum.Current;
                if (!rowsEnum.MoveNext())
                {
                    yield break;
                }
            }
            else
            {
                headerNames = rowsEnum.Current.Select((n, i) => "Field" + (i + 1)).ToList().AsReadOnly();
            }

            var rowIndex = 0;

            do
            {
                var currentValues = rowsEnum.Current;
                var d             = new CsvDictionary(keyComparer);
                if (currentValues.Count != headerNames.Count)
                {
                    throw new IncorrectCsvColumnCountException(rowIndex, currentValues, headerNames);
                }

                for (int i = 0; i < headerNames.Count; i++)
                {
                    d.Add(headerNames[i], currentValues[i]);
                }

                yield return(d);

                rowIndex += 1;
            } while (rowsEnum.MoveNext());
        }
Exemple #7
0
        public async Task TestUseValue()
        {
            var csvData =
                "A;a" + Environment.NewLine +
                "B;b" + Environment.NewLine +
                "C;c";

            using var csvReader = new CsvReader(csvData);

            var csvDictionary = new CsvDictionary();

            Assert.NotNull(csvDictionary);

            await csvDictionary.LoadAsync(csvReader);

            csvDictionary.UseValue("A", s => Assert.Equal("a", s));
            csvDictionary.UseValue("B", s => Assert.Equal("b", s));
            csvDictionary.UseValue("C", s => Assert.Equal("c", s));
        }
Exemple #8
0
        public static void LoadAppropriateSettings(GrblVersionInfo value)
        {
            try
            {
                string ResourceName;
                if (value.IsOrtur)
                {
                    ResourceName = String.Format("LaserGRBL.CSV.setting_codes.ortur.v1.0.csv");
                }
                else
                {
                    ResourceName = String.Format("LaserGRBL.CSV.setting_codes.v{0}.{1}.csv", value.Major, value.Minor);
                }


                Settings = new CsvDictionary(ResourceName, 3);
            }
            catch { }
        }
Exemple #9
0
        public async Task TestEntity()
        {
            var csvData =
                "A;22" + Environment.NewLine +
                "B;Text" + Environment.NewLine +
                "C;true" + Environment.NewLine +
                "D;01.01.2010" + Environment.NewLine +
                "e;" + Environment.NewLine +
                "G;A";

            var sb = new StringBuilder();

            using var csvWriter = new CsvWriter(sb);

            var csvDictionary = new CsvDictionary();

            csvDictionary.SetFormats<DateTime>("dd.MM.yyyy");
            csvDictionary.SetTrueFalseString<bool>("true", "false");

            csvDictionary["A"] = null;
            csvDictionary["B"] = null;
            csvDictionary["C"] = null;
            csvDictionary["D"] = null;
            csvDictionary["e"] = null;
            csvDictionary["G"] = null;

            await csvDictionary.StoreAsync(csvWriter, new SampleObject() { A = 22, B = "Text", C = true, D = new DateTime(2010, 1, 1) });

            Assert.Equal(csvData, sb.ToString());

            using var csvReader = new CsvReader(csvData);

            Assert.NotNull(csvDictionary);

            await csvDictionary.LoadAsync(csvReader);

            Assert.Equal(new SampleObject() { A = 22, B = "Text", C = true, D = new DateTime(2010, 1, 1), E = "", G = SampleEnum.A }, csvDictionary.CreateAndGetValues<SampleObject>());
        }
Exemple #10
0
        public async Task TestTryGetValue()
        {
            var csvData =
                "A;a" + Environment.NewLine +
                "B;b" + Environment.NewLine +
                "C;c";

            using var csvReader = new CsvReader(csvData);

            var csvDictionary = new CsvDictionary();

            Assert.NotNull(csvDictionary);

            await csvDictionary.LoadAsync(csvReader);

            Assert.True(csvDictionary.TryGetValue("A", out string v1));
            Assert.Equal("a", v1);
            Assert.True(csvDictionary.TryGetValue("B", out string v2));
            Assert.Equal("b", v2);
            Assert.True(csvDictionary.TryGetValue("C", out string v3));
            Assert.Equal("c", v3);
            Assert.False(csvDictionary.TryGetValue("D", out string v4));
            Assert.Null(v4);
        }
Exemple #11
0
        public async Task TestGetTypedValues()
        {
            var csvData =
                "A;22" + Environment.NewLine +
                "B;Text" + Environment.NewLine +
                "C;true" + Environment.NewLine +
                "D;01.01.2010" + Environment.NewLine +
                "E;A";

            using var csvReader = new CsvReader(csvData);

            var csvDictionary = new CsvDictionary();

            Assert.NotNull(csvDictionary);

            csvDictionary.SetFormats<DateTime>("dd.MM.yyyy");

            await csvDictionary.LoadAsync(csvReader);
            Assert.Equal(22, csvDictionary.GetValue<int>("A"));
            Assert.Equal("Text", csvDictionary.GetValue<string>("B"));
            Assert.True(csvDictionary.GetValue<bool>("C"));
            Assert.Equal(new DateTime(2010, 1, 1), csvDictionary.GetValue<DateTime>("D"));
            Assert.Equal(SampleEnum.A, csvDictionary.GetValue<SampleEnum>("E"));
        }
        static void Main(string[] args)
        {
            TestData td0 = new TestData()
            {
                Id          = "1234567890",
                Name        = "DESKTOP-123",
                Age         = 22,
                HappyDay    = DateTime.Now,
                BytesArray  = new byte[] { 0x11, 0x12, 0x13, 0x14 },
                IgnoreData  = 12345,
                StringArray = new List <string>()
            };
            TestData td1 = new TestData()
            {
                Id          = "0987654321",
                Name        = "DESKTOP-456",
                Age         = 23,
                HappyDay    = DateTime.Now,
                BytesArray  = new byte[] { 0x2A, 0x2B, 0x2E, 0x2F },
                IgnoreData  = 12345,
                StringArray = new List <string>()
            };

            td0.StringArray.Add("abc");

            CsvDictionary <String> csvd = new CsvDictionary <String>();

            csvd.IsAutoSave = true;
            csvd.Add(td0);

            if (csvd.IsAutoSave)
            {
                Console.WriteLine("Sleep..");
                int i = 0;
                while (i < 100000)
                {
                    i++;
                    Thread.SpinWait(i);
                }
            }

            td0.StringArray.Add("def");
            td0.StringArray.Add("wxv");

            csvd.Replace(td0);

            if (csvd.IsAutoSave)
            {
                Console.WriteLine("Sleep..");
                int i = 0;
                while (i < 100000)
                {
                    i++;
                    Thread.SpinWait(i);
                }
            }

            csvd.AddOrUpdate(td1);

            if (!csvd.IsAutoSave)
            {
                //csvd.Save();
                //csvd.Load<TestData>();
                /// or
                csvd.FlushAndReload();
            }

            TestData tdItem = null;
            bool     ret    = csvd.TryGetValue <TestData>("1234567890", out tdItem);

            tdItem.StringArray.Add("fgh");
            tdItem.StringArray.Add("zzz");
            tdItem.StringArray.Add("qqq");

            if (csvd.IsAutoSave)
            {
                Console.WriteLine("Sleep..");
                int i = 0;
                while (i < 100000)
                {
                    i++;
                    Thread.SpinWait(i);
                }
            }

            td1.StringArray.Add("end1");
            td1.StringArray.Add("end2");

            csvd.AddOrUpdate(td1);

            if (csvd.IsAutoSave)
            {
                Console.WriteLine("Sleep..");
                int i = 0;
                while (i < 100000)
                {
                    i++;
                    Thread.SpinWait(i);
                }
            }

            Console.WriteLine(
                "End -> return {0}: {1}",
                ret,
                ((tdItem == null) ? "item not found" : tdItem.ToString())
                );

            if (!csvd.IsAutoSave)
            {
                Console.ReadLine();
            }
        }