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()); }
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 { } }
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 { } }
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); }
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()); }
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)); }
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 { } }
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>()); }
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); }
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(); } }