static void AsDataReaderTest() { using (var stream = new MemoryStream()) using (var reader = new StreamReader(stream)) using (var writer = new StreamWriter(stream)) using (var parser = new ChoCSVReader <EmployeeRec>(reader)) { writer.WriteLine("1,Carl"); writer.WriteLine("2,Mark"); writer.WriteLine("3,Tom"); writer.Flush(); stream.Position = 0; IDataReader dr = parser.AsDataReader(); while (dr.Read()) { Console.WriteLine("Id: {0}, Name: {1}", dr[0], dr[1]); } } }
static void AsDataTableTest() { using (var stream = new MemoryStream()) using (var reader = new StreamReader(stream)) using (var writer = new StreamWriter(stream)) using (var parser = new ChoCSVReader <EmployeeRec>(reader)) { writer.WriteLine("1,Carl"); writer.WriteLine("2,Mark"); writer.WriteLine("3,Tom"); writer.Flush(); stream.Position = 0; DataTable dt = parser.AsDataTable(); foreach (DataRow dr in dt.Rows) { Console.WriteLine("Id: {0}, Name: {1}", dr[0], dr[1]); } } }
static void CurrencyTest() { using (var stream = new MemoryStream()) using (var reader = new StreamReader(stream)) using (var writer = new StreamWriter(stream)) using (var parser = new ChoCSVReader <EmployeeRecWithCurrency>(reader)) { writer.WriteLine("1,Carl,$100000"); writer.WriteLine("2,Mark,$50000"); writer.WriteLine("3,Tom,1000"); writer.Flush(); stream.Position = 0; object rec; while ((rec = parser.Read()) != null) { Console.WriteLine(rec.ToStringEx()); } } }
/***************************************************************************************/ //Reader for CSV file: #region READER // Read CSV private void ReadCSV(string filename) { try { Expression exp; using (var parser = new ChoCSVReader(filename).WithFirstLineHeader().WithDelimiter(",")) { foreach (var e in parser) { int id = (e.Count == 2) ? int.Parse(e[0]) : 0; string expression = (e.Count == 2) ? e[1] : ""; exp = new Expression(id, expression); expressions.Add(exp); } } } catch (Exception ex) { Console.WriteLine(ex.Message.ToString()); } }
static void WriteDataTableTest() { string csv = @"Id, Name 1, Tom 2, Mark"; StringBuilder yaml = new StringBuilder(); using (var r = ChoCSVReader.LoadText(csv) .WithFirstLineHeader() ) { using (var w = new ChoYamlWriter(yaml) //.ReuseSerializerObject(false) ) { w.Write(r.AsDataTable()); } } Console.WriteLine(yaml.ToString()); }
static void Sample3() { using (var p = new ChoCSVReader <Site>("Sample3.csv") //.ClearFields() // .WithField(m => m.SiteID) // .WithField(m => m.SiteAddress.City) .WithFirstLineHeader(true) .Configure(c => c.ObjectValidationMode = ChoObjectValidationMode.ObjectLevel) ) { StringBuilder msg = new StringBuilder(); using (var w = new ChoCSVWriter <Site>(new StringWriter(msg)) .WithFirstLineHeader() ) { w.Write(p); } Console.WriteLine(msg.ToString()); //foreach (var rec in p) //Console.WriteLine(rec.Dump()); } }
public static void CSVWithJSON() { using (var parser = new ChoCSVReader <EmpWithJSON>("emp1.csv")) { parser.BeforeRecordFieldLoad += (o, e) => { if (e.PropertyName == "JsonValue") { EmpWithJSON rec = e.Record as EmpWithJSON; dynamic jobject = ChoJSONReader.LoadText((string)e.Source).FirstOrDefault(); rec.product_version_id = jobject.product_version_id; rec.product_version_name = jobject.product_version_name; e.Skip = true; } }; using (var jp = new ChoJSONWriter("emp1.json")) jp.Write(parser.Select(i => new { i.Id, i.Name, i.product_version_id, i.product_version_name })); //foreach (var rec in parser) // Console.WriteLine(rec.product_version_id); } }
static void QuickTest() { using (var stream = new MemoryStream()) using (var reader = new StreamReader(stream)) using (var writer = new StreamWriter(stream)) using (var parser = new ChoCSVReader <EmployeeRecWithCurrency>(reader).WithDelimiter(",").WithFirstLineHeader()) { writer.WriteLine("Id,Name,Salary"); writer.WriteLine("1,Carl,1000"); writer.WriteLine("2,Mark,2000"); writer.WriteLine("3,Tom,3000"); writer.Flush(); stream.Position = 0; object rec; while ((rec = parser.Read()) != null) { Console.WriteLine(rec.ToStringEx()); } } }
static void DataTableTest() { string csv = @"Id, Name 1, Tom 2, Mark"; using (var r = ChoCSVReader.LoadText(csv) .WithFirstLineHeader() ) { var dt = r.AsDataTable("Emp"); using (var w = new ChoParquetWriter("datatable.parquet")) { w.Write(dt); w.Close(); var s = w.Configuration.Schema; s.Print(); } } }
static void EnumTest() { ChoTypeConverterFormatSpec.Instance.EnumFormat = ChoEnumFormatSpec.Description; using (var w = new ChoParquetWriter("EnumTest.parquet") .WithField("Id") .WithField("Name") .WithField("EmpType", valueConverter: o => (int)o, fieldType: typeof(int)) ) { w.Write(new { Id = 1, Name = "Tom", EmpType = EmployeeType.Permanent }); } return; string csv = @"Id, Name, EmpType 1, Tom, Full Time Employee 2, Mark, Contract Employee"; ChoTypeConverterFormatSpec.Instance.EnumFormat = ChoEnumFormatSpec.Description; using (var r = ChoCSVReader.LoadText(csv) .WithFirstLineHeader() .WithField("Id", fieldType: typeof(int)) .WithField("Name") .WithField("EmpType", fieldType: typeof(EmployeeType)) ) { using (var w = new ChoParquetWriter("EnumTest.parquet")) { w.Write(r); } } }
private void Form1_Load(object sender, EventArgs e) { UnJourTransfert ujt = new UnJourTransfert(); using (ChoCSVReader <UnJourTransfert> reader = new ChoCSVReader <UnJourTransfert>("Tension.csv")) { while ((ujt = reader.Read()) != null) { UneTension tension1 = new UneTension(ujt.sys1.ToString() + ";" + ujt.dia1.ToString() + ";" + ujt.pul1.ToString()); UneTension tension2 = new UneTension(ujt.sys2.ToString() + ";" + ujt.dia2.ToString() + ";" + ujt.pul2.ToString()); UneTension tension3 = new UneTension(ujt.sys3.ToString() + ";" + ujt.dia3.ToString() + ";" + ujt.pul3.ToString()); UneTension tension4 = new UneTension(ujt.sys4.ToString() + ";" + ujt.dia4.ToString() + ";" + ujt.pul4.ToString()); UneTension tension5 = new UneTension(ujt.sys5.ToString() + ";" + ujt.dia5.ToString() + ";" + ujt.pul5.ToString()); UneTension tension6 = new UneTension(ujt.sys6.ToString() + ";" + ujt.dia6.ToString() + ";" + ujt.pul6.ToString()); UnJour uj = new UnJour(); uj.matin1 = tension1; uj.matin2 = tension2; uj.matin3 = tension3; uj.soir1 = tension4; uj.soir2 = tension5; uj.soir3 = tension6; this.dateTimePicker1.Value = DateTime.Parse(ujt.LaDate); uj.annee = dateTimePicker1.Value.Year; uj.mois = dateTimePicker1.Value.Month; uj.jour = dateTimePicker1.Value.Day; LJ.Add(uj); ctlUneTension1.import(tension1.sys.ToString() + ";" + tension1.dia.ToString() + ";" + tension1.pul.ToString()); ctlUneTension2.import(tension2.sys.ToString() + ";" + tension2.dia.ToString() + ";" + tension2.pul.ToString()); ctlUneTension3.import(tension3.sys.ToString() + ";" + tension3.dia.ToString() + ";" + tension3.pul.ToString()); ctlUneTension4.import(tension4.sys.ToString() + ";" + tension4.dia.ToString() + ";" + tension4.pul.ToString()); ctlUneTension5.import(tension5.sys.ToString() + ";" + tension5.dia.ToString() + ";" + tension5.pul.ToString()); ctlUneTension6.import(tension6.sys.ToString() + ";" + tension6.dia.ToString() + ";" + tension6.pul.ToString()); } UpdateScrollbar(); UnJour uj1 = (UnJour)LJ[hScrollBar1.Value - 1]; } }
public void CSV(Stream fileStream) { var stream = new StreamReader(fileStream); using (stream) { var fileContent = ""; while (stream.Peek() >= 0) { var line = stream.ReadLine(); line = Regex.Replace(line, @"(""[^"",]+),([^""]+"")", m => m.Value.Replace(",", "")); line = line.Replace("\"", ""); fileContent += line + Environment.NewLine; } foreach (var rec in ChoCSVReader <PaymentModel> .LoadText(fileContent)) { var payment = Mapper.Map <Payment>(rec); paymentRepository.Insert(payment); } } }
static void ReadNWrite() { string csv = @"Id, Name 1, Tom 2, Mark "; StringBuilder csvOut = new StringBuilder(); using (var r = ChoCSVReader.LoadText(csv) .WithFirstLineHeader() ) { using (var w = new ChoCSVWriter(csvOut)) w.Write(r.Select(r1 => new { r1.Id, r1.Name, City = "NY" })); } Console.WriteLine(csvOut.ToString()); }
public void TipIt_ConvertsNrlResultsCsvToJson_Ok() { var fileName = "nrl-2021.csv"; string path = Directory.GetCurrentDirectory(); if (!File.Exists(fileName)) { _output.WriteLine($"Could not find file {fileName} in {path}"); } else { var reader = new ChoCSVReader <ResultRec>(fileName) .WithFirstLineHeader(); foreach (var x in reader) { x.HomeTeam = ConvertNrlTeam(x.HomeTeam); x.AwayTeam = ConvertNrlTeam(x.AwayTeam); x.GameDate = ConvertDate(x.GameDate); var jo = new ResultJson(x, "NRL"); _output.WriteLine(jo.DumpAsJson()); } } }
static void ConvertToNestedObjects() { using (var json = new ChoJSONWriter("nested.json").Configure(c => c.UseJSONSerialization = false)) { using (var csv = new ChoCSVReader("nested.csv").WithFirstLineHeader()) json.Write(csv.Select(i => i.ConvertToNestedObject('_'))); } return; ExpandoObject dict = new ExpandoObject(); IDictionary <string, object> root = dict as IDictionary <string, object>; root.Add("id", 1); root.Add("name", "NYC"); root.Add("category/id /", 11); root.Add("category /name ", "NJ"); root.Add("category/subcategory/id", 111); root.Add("category/subcategory/name", "MA"); using (var json = new ChoJSONWriter <dynamic>("nested.json")) json.Write(dict.ConvertToNestedObject()); }
public void CSVTest1() { string csv = @"Id, Name 2, Tom 3, Mark"; foreach (var rec in ChoCSVReader.LoadText(csv) .WithFirstLineHeader()) { Trace.WriteLine((string)rec.Dump()); } //var dr = ChoCSVReader.LoadText(csv) // .WithFirstLineHeader() // .WithField("Id") // .WithField("Name", valueConverter: (o) => o == null ? String.Empty : o) // .Configure(c => c.IgnoreFieldValueMode = ChoIgnoreFieldValueMode.Any) // .AsDataReader(); //while (dr.Read()) //{ // var x = dr[1]; //} Assert.IsTrue(true); }
public static void CultureSpecificDateTimeTest() { string csvData = @"Id,Date,Account,Amount,Subcategory,Memo 1,09/05/2017,XXX XXXXXX,-29.00,FT , [Sample string] 2,09/05/2017,XXX XXXXXX,-20.00,FT ,[Sample string] 3,25/05/2017,XXX XXXXXX,-6.30,PAYMENT,[Sample string]"; List <Transaction> result = new List <Transaction>(); using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(csvData))) using (StreamReader sr = new StreamReader(ms)) { var csv = new ChoCSVReader <Transaction>(sr).WithFirstLineHeader(); csv.TraceSwitch = ChoETLFramework.TraceSwitchOff; //csv.Configuration.Culture = CultureInfo.GetCultureInfo("en-GB"); foreach (var t in csv) { Console.WriteLine(string.Format("{0:dd-MMM-yyyy} {1} {2,6} {3,-7} {4}", t.Date, t.Account, t.Amount, t.Subcategory, t.Memo)); } } }
/// <summary> ///sorting the state for population,density and area /// </summary> /// <param name="path"> State Code data path </param> /// <param name="jsonFilepath"> Delimiter </param> /// <param name="key"> Header </param> /// <returns> sorting the state for population,density and area </returns> public static string SortCSVInJsonAndReturnData(string path, string jsonFilepath, string key) { //create a object to read file string csvfile = File.ReadAllText(path); StringBuilder json = new StringBuilder(); //read a csv file using (var p = ChoCSVReader.LoadText(csvfile) .WithFirstLineHeader() ) { //write json file using (var w = new ChoJSONWriter(json)) w.Write(p); } File.WriteAllText(jsonFilepath, json.ToString()); JArray arr = CSVOperations.SortJsonBasedOnKeyAndValueIsNumber(jsonFilepath, key); //convert into json format var jsonArr = JsonConvert.SerializeObject(arr, Formatting.Indented); File.WriteAllText(jsonFilepath, jsonArr); return(CSVOperations.RetriveLastDataOnKey(jsonFilepath, key)); }
static void QuickDynamicTest() { using (var stream = new MemoryStream()) using (var reader = new StreamReader(stream)) using (var writer = new StreamWriter(stream)) using (var parser = new ChoCSVReader(reader).WithDelimiter(",").WithFirstLineHeader().WithField("Id", typeof(int)). WithField("Name", typeof(string), fieldName: "@Name $1").ColumnOrderStrict()) { writer.WriteLine("Id,@Name $1,Salary"); writer.WriteLine("1,Carl,1000"); writer.WriteLine("2,Mark,2000"); writer.WriteLine("3,Tom,3000"); writer.Flush(); stream.Position = 0; dynamic rec; while ((rec = parser.Read()) != null) { //Console.WriteLine(rec.Name); Console.WriteLine(((object)rec).ToStringEx()); } } }
static void IgnoreLineTest() { using (var parser = new ChoCSVReader("IgnoreLineFile.csv").WithFirstLineHeader()) { parser.Configuration.Encoding = Encoding.BigEndianUnicode; parser.BeforeRecordLoad += (o, e) => { if (e.Source != null) { e.Skip = ((string)e.Source).StartsWith("%"); } }; parser.BeforeRecordFieldLoad += (o, e) => { //if (e.PropertyName == "Id") // e.Skip = true; }; parser.AfterRecordFieldLoad += (o, e) => { if (e.Source.ToNString() == "2") { e.Stop = true; } }; parser.AfterRecordLoad += (o, e) => { e.Stop = false; }; foreach (var e in parser) { Console.WriteLine(e.ToStringEx()); } } }
/// <summary> /// Coverts csv string to json string /// </summary> /// <param name="csvContent">string content of csv data</param> /// <param name="delimiter">delimiter used in csv data</param> /// <returns></returns> public static string Convert(string csvContent, string delimiter) { try { string jsonResult; using (var p = new ChoCSVReader(new StringReader(csvContent)).WithFirstLineHeader().WithDelimiter(delimiter)) { using (var stringWriter = new StringWriter()) { using (var w = new ChoJSONWriter(stringWriter)) { w.Write(p); } jsonResult = stringWriter.ToString(); } } return(jsonResult); } catch (Exception e) { Console.WriteLine(e); throw; } }
public static void POCOCSVW2XmlNoFormattingTest() { string csv = @"Id, Name 1, Tom 2, Mark"; StringBuilder xml = new StringBuilder(); using (var r = ChoCSVReader <Emp> .LoadText(csv) .WithFirstLineHeader()) { using (var w = new ChoXmlWriter <Emp>(xml) .ErrorMode(ChoErrorMode.ThrowAndStop) //.IgnoreRootName() //.IgnoreNodeName() //.Configure(c => c.Formatting = System.Xml.Formatting.None) ) { w.Write(r.First()); } } Console.WriteLine(xml.ToString()); }
public IEnumerable <ItemDTO> Post([FromBody] string value) { StringBuilder sb = new StringBuilder(); using (var p = ChoCSVReader.LoadText(value).WithFirstLineHeader()) { using (var w = new ChoJSONWriter(sb)) { w.Write(p); } } var items = _context.Porducts.ToList(); var content = JsonConvert.DeserializeObject <IEnumerable <Item> >(sb.ToString()); List <ItemDTO> newItems = new List <ItemDTO>(); foreach (Item item in content) { if (!items.Any(y => y.Id == item.Id)) { var newItem = new ItemDTO() { Product = item, Updated = false }; newItems.Add(newItem); } else { var existingItem = new ItemDTO() { Product = item, Updated = true }; newItems.Add(existingItem); } } return(newItems); }
private static void OldTest() { //var t = ChoTypeDescriptor.GetPropetyAttributes<ChoTypeConverterAttribute>(ChoTypeDescriptor.GetProperty<ChoTypeConverterAttribute>(typeof(EmployeeRecMeta), "Name")).ToArray(); //return; //ChoMetadataObjectCache.Default.Attach(typeof(EmployeeRec), new EmployeeRecMeta()); //string v = @"4,'123\r\n4,abc'"; //foreach (var ss in v.SplitNTrim(",", ChoStringSplitOptions.None, '\'')) // Console.WriteLine(ss + "-"); //return; ChoCSVRecordConfiguration config = new ChoCSVRecordConfiguration(); //config.AutoDiscoverColumns = false; config.FileHeaderConfiguration.HasHeaderRecord = true; //config.CSVFileHeaderConfiguration.FillChar = '$'; config.ThrowAndStopOnMissingField = false; //config.HasExcelSeparator = true; config.ColumnCountStrict = false; //config.MapRecordFields<EmployeeRec>(); ChoCSVRecordFieldConfiguration idConfig = new ChoCSVRecordFieldConfiguration("Id", 1); idConfig.AddConverter(new IntConverter()); config.CSVRecordFieldConfigurations.Add(idConfig); config.CSVRecordFieldConfigurations.Add(new ChoCSVRecordFieldConfiguration("Name", 2)); config.CSVRecordFieldConfigurations.Add(new ChoCSVRecordFieldConfiguration("Name1", 2)); dynamic rec = new ExpandoObject(); rec.Id = 1; rec.Name = "Raj"; //using (var wr = new ChoCSVWriter("EmpOut.csv", config)) //{ // wr.Write(new List<ExpandoObject>() { rec }); //} //List<EmployeeRec> recs = new List<EmployeeRec>(); //recs.Add(new EmployeeRec() { Id = 1, Name = "Raj" }); //recs.Add(new EmployeeRec() { Id = 2, Name = "Mark" }); //using (var stream = new MemoryStream()) //using (var reader = new StreamReader(stream)) //using (var writer = new StreamWriter(stream)) //using (var parser = new ChoCSVWriter<EmployeeRec>(writer, config)) //{ // parser.Write(recs); // writer.Flush(); // stream.Position = 0; // Console.WriteLine(reader.ReadToEnd()); //} //return; //string txt = "Id, Name\r\n1, Mark"; //foreach (var e in ChoCSVReader.LoadText(txt)) // Console.WriteLine(e.ToStringEx()); //return; //dynamic row; //using (var stream = new MemoryStream()) //using (var reader = new StreamReader(stream)) //using (var writer = new StreamWriter(stream)) //using (var parser = new ChoCSVReader(reader, config)) //{ // //writer.WriteLine("Id,Name"); // writer.WriteLine("1,Carl"); // writer.WriteLine("2,Mark"); // writer.Flush(); // stream.Position = 0; // while ((row = parser.Read()) != null) // { // Console.WriteLine(row.Id); // } //} //return; //DataTable dt = new ChoCSVReader<EmployeeRec>("Emp.csv").AsDataTable(); //var z = dt.Rows.Count; //return; foreach (var item in new ChoCSVReader <EmployeeRec>("Emp.csv")) { Console.WriteLine(item.ToStringEx()); } return; //var reader = new ChoCSVReader<EmployeeRec>("Emp.csv"); //var rec = (object)null; //while ((rec = reader.Read()) != null) // Console.WriteLine(rec.ToStringEx()); //var config = new ChoCSVRecordConfiguration(typeof(EmployeeRec)); //var e = new ChoCSVReader("Emp.csv", config); //dynamic i; //while ((i = e.Read()) != null) // Console.WriteLine(i.Id); ChoETLFramework.Initialize(); using (var stream = new MemoryStream()) using (var reader = new StreamReader(stream)) using (var writer = new StreamWriter(stream)) using (var parser = new ChoCSVReader <EmployeeRec>(reader)) { writer.WriteLine("Id,Name"); writer.WriteLine("1,Carl"); writer.WriteLine("2,Mark"); writer.Flush(); stream.Position = 0; //var dr = parser.AsDataReader(); //while (dr.Read()) //{ // Console.WriteLine(dr[0]); //} object row1 = null; //parser.Configuration.ColumnCountStrict = true; while ((row1 = parser.Read()) != null) { Console.WriteLine(row1.ToStringEx()); } } }
static void Main(string[] args) { ChoCSVRecordConfiguration config = new ChoCSVRecordConfiguration(); config.RecordFieldConfigurations.Add(new ChoCSVRecordFieldConfiguration("Id", 1)); config.RecordFieldConfigurations.Add(new ChoCSVRecordFieldConfiguration("Name", 2)); dynamic row; using (var stream = new MemoryStream()) using (var reader = new StreamReader(stream)) using (var writer = new StreamWriter(stream)) using (var parser = new ChoCSVReader(reader, config)) { writer.WriteLine("1,Carl"); writer.WriteLine("2,Mark"); writer.Flush(); stream.Position = 0; while ((row = parser.Read()) != null) { Console.WriteLine(row.Name); } } return; //DataTable dt = new ChoCSVReader<EmployeeRec>("Emp.csv").AsDataTable(); //var z = dt.Rows.Count; //return; //foreach (var e in new ChoCSVReader<EmployeeRec>("Emp.csv")) // Console.WriteLine(e.ToStringEx()); //var reader = new ChoCSVReader<EmployeeRec>("Emp.csv"); //var rec = (object)null; //while ((rec = reader.Read()) != null) // Console.WriteLine(rec.ToStringEx()); //var config = new ChoCSVRecordConfiguration(typeof(EmployeeRec)); //var e = new ChoCSVReader("Emp.csv", config); //dynamic i; //while ((i = e.Read()) != null) // Console.WriteLine(i.Id); ChoETLFramework.Initialize(); using (var stream = new MemoryStream()) using (var reader = new StreamReader(stream)) using (var writer = new StreamWriter(stream)) using (var parser = new ChoCSVReader <EmployeeRec>(reader)) { //writer.WriteLine("Id,Name"); writer.WriteLine("1,Carl"); writer.WriteLine("2,Mark"); writer.Flush(); stream.Position = 0; var dr = parser.AsDataReader(); while (dr.Read()) { Console.WriteLine(dr[0]); } //object row = null; //parser.Configuration.ColumnCountStrict = true; //while ((row = parser.Read()) != null) //{ // Console.WriteLine(row.ToStringEx()); //} } }
static void Main(string[] args) { //string v = @"4,'123\r\n4,abc'"; //foreach (var ss in v.SplitNTrim(",", ChoStringSplitOptions.None, '\'')) // Console.WriteLine(ss + "-"); //return; dynamic rec = new ExpandoObject(); rec.Id = 1; rec.Name = "Raj"; using (var wr = new ChoCSVWriter("EmpOut.csv")) { wr.Write(new List <ExpandoObject>() { rec }); } return; ChoCSVRecordConfiguration config = new ChoCSVRecordConfiguration(); //config.AutoDiscoverColumns = false; config.CSVFileHeaderConfiguration.HasHeaderRecord = true; config.ThrowAndStopOnMissingField = true; //config.MapRecordFields<EmployeeRec>(); //config.RecordFieldConfigurations.Add(new ChoCSVRecordFieldConfiguration("Id", 1)); //config.RecordFieldConfigurations.Add(new ChoCSVRecordFieldConfiguration("Name", 2)); //dynamic row; //using (var stream = new MemoryStream()) //using (var reader = new StreamReader(stream)) //using (var writer = new StreamWriter(stream)) //using (var parser = new ChoCSVReader(reader, config)) //{ // writer.WriteLine("Id,Name"); // writer.WriteLine("1,Carl"); // writer.WriteLine("2,Mark"); // writer.Flush(); // stream.Position = 0; // while ((row = parser.Read()) != null) // { // Console.WriteLine(row.Id); // } //} //return; //DataTable dt = new ChoCSVReader<EmployeeRec>("Emp.csv").AsDataTable(); //var z = dt.Rows.Count; //return; foreach (var e in new ChoCSVReader <EmployeeRec>("Emp.csv")) { Console.WriteLine(e.ToStringEx()); } return; //var reader = new ChoCSVReader<EmployeeRec>("Emp.csv"); //var rec = (object)null; //while ((rec = reader.Read()) != null) // Console.WriteLine(rec.ToStringEx()); //var config = new ChoCSVRecordConfiguration(typeof(EmployeeRec)); //var e = new ChoCSVReader("Emp.csv", config); //dynamic i; //while ((i = e.Read()) != null) // Console.WriteLine(i.Id); ChoETLFramework.Initialize(); using (var stream = new MemoryStream()) using (var reader = new StreamReader(stream)) using (var writer = new StreamWriter(stream)) using (var parser = new ChoCSVReader <EmployeeRec>(reader)) { writer.WriteLine("Id,Name"); writer.WriteLine("1,Carl"); writer.WriteLine("2,Mark"); writer.Flush(); stream.Position = 0; //var dr = parser.AsDataReader(); //while (dr.Read()) //{ // Console.WriteLine(dr[0]); //} object row = null; //parser.Configuration.ColumnCountStrict = true; while ((row = parser.Read()) != null) { Console.WriteLine(row.ToStringEx()); } } }
public static void CustomNodeNameTest() { string xml1 = @"<Root> <Node1> <Id>1</Id> <FirstName>Tom</FirstName> </Node1> <Node2> <Id>2</Id> <FirstName>Mark</FirstName> </Node2> </Root>"; using (var r = ChoXmlReader.LoadText(xml1)) { foreach (var rec in r) { Console.WriteLine(rec.Dump()); } } return; string csv = @"Id, First Name 1, Tom 2, Mark"; StringBuilder xml = new StringBuilder(); using (var r = ChoCSVReader.LoadText(csv) .WithFirstLineHeader()) { using (var w = new ChoXmlWriter(xml) .ErrorMode(ChoErrorMode.ThrowAndStop) .Setup(s => s.CustomeNodeNameOverride += (o, e) => { e.NodeName = $"Node{e.Index}"; }) ) { w.Write(r); } } Console.WriteLine(xml.ToString()); //using (var reader = new ChoCSVReader("C:\\Server Media\\test3.csv") // .WithFirstLineHeader() // .Configure(c => c.FileHeaderConfiguration.IgnoreColumnsWithEmptyHeader = true) // ) //{ // using (var writer = new ChoXmlWriter(sb) // .Configure(c => c.RootName = "Records") // .Configure(c => c.NodeName = "Record") // .Configure(c => c.EmptyXmlNodeValueHandling = ChoEmptyXmlNodeValueHandling.Empty) // .Configure(c => c.ErrorMode = ChoErrorMode.ThrowAndStop) // ) // { // writer.Write(reader.Select(r => // { // r.RenameKey("Company Name", "CompanyName"); // return r; // })); // } //} }
static void PullMatches(string displayedDate) { var reader = new ChoCSVReader("27612-precipitation-data.csv").WithFirstLineHeader(); dynamic rec; while ((rec = reader.Read()) != null) { if (rec.DATE != null && rec.PRCP != null) { string dataDate = rec.DATE; dataDate = dataDate.Substring(0, dataDate.Length - 4); if (dataDate == displayedDate) { int count = 0; string date = rec.DATE; string prcp = rec.PRCP; if (DatesSeen.Contains(date)) { int combine = DatesSeen.IndexOf(date); string checkAmount = Convert.ToString(combine); if (DupeValues.Count != 0) { int primaryCount = DupeValues.Count; for (int dupeCounter = 0; dupeCounter < DupeValues.Count; dupeCounter++) { if (DupeValues[dupeCounter].Contains(checkAmount)) { string dupeString = DupeValues[dupeCounter]; string[] valuesArray = new string[2]; valuesArray = dupeString.Split(","); int dupeNumber = Convert.ToInt32(valuesArray[1]); dupeNumber = dupeNumber + 1; valuesArray[1] = Convert.ToString(dupeNumber); dupeString = string.Join(",", valuesArray); DupeValues[dupeCounter] = dupeString; int finalCount = DupeValues.Count; if (finalCount > primaryCount) { int subtractAmount = finalCount - primaryCount; DupeValues.RemoveAt(subtractAmount - 1); } } else { string dupeString = $"{checkAmount}, 1"; DupeValues.Add(dupeString); } } } else { string dupeString = $"{checkAmount}, 1"; DupeValues.Add(dupeString); } string recordedPrcp = RainSeen[combine]; double oldValue = Convert.ToDouble(recordedPrcp); double newValue = Convert.ToDouble(prcp); double rainTotal = oldValue + newValue; string newRain = Convert.ToString(rainTotal); RainSeen[combine] = newRain; } else { DatesSeen.Add(date); RainSeen.Add(prcp); } count = DatesSeen.Count - 1; } } } return; }
static void Main(string[] args) { var usda_nutrients = new List <USDA_Nutrient>(); var usda_servingSizes = new List <USDA_ServingSize>(); var line = string.Empty; using (var file = new StreamReader(Path.Combine(AppContext.BaseDirectory, @"C:\Users\Micah.abc\OneDrive - Pronect Software\Documents\NutriInfo\v1\Raw\CSV\Nutrients.csv"))) { while ((line = file.ReadLine()) != null) { var p = line.Split(','); var nutrient = new USDA_Nutrient() { Id = Guid.NewGuid().ToString(), NDB_Number = p[0].Trim().Trim('"'), Name = p[2].Trim().Trim('"'), Value = p[4].Trim().Trim('"'), Value_UOM = p[5].Trim().Trim('"') }; if (nutrient.Name == "Protein" || nutrient.Name == "Leucine") { usda_nutrients.Add(nutrient); } } } line = string.Empty; using (var file = new StreamReader(Path.Combine(AppContext.BaseDirectory, @"C:\Users\Micah.abc\OneDrive - Pronect Software\Documents\NutriInfo\v1\Raw\CSV\Serving_Size.csv"))) { while ((line = file.ReadLine()) != null) { var p = line.Split(','); usda_servingSizes.Add(new USDA_ServingSize() { Id = Guid.NewGuid().ToString(), NDB_Number = p[0].Trim().Trim('"'), ServingSize = p[1].Trim().Trim('"'), ServingSize_UOM = p[2].Trim().Trim('"') }); } } using (var reader = new ChoCSVReader(@"C:\Users\Micah.abc\OneDrive - Pronect Software\Documents\NutriInfo\v1\Raw\CSV\Products.csv")) { foreach (dynamic chooitem in reader) { var usda_food = new USDA_Food() { Id = Guid.NewGuid().ToString(), NDB_Number = chooitem.ValuesArray[0].Replace('"', ' ').Trim().Trim('"'), Name = chooitem.ValuesArray[1].Trim().Replace('"', ' ').Trim('"'), UPC = chooitem.ValuesArray[3].Trim().Replace('"', ' ').Trim('"'), Manufacturer = chooitem.ValuesArray[4].Trim().Replace('"', ' ').Trim('"') }; var leucineMg = usda_nutrients.FirstOrDefault(n => n.NDB_Number == usda_food.NDB_Number && n.Name == "Leucine"); var proteinMg = usda_nutrients.FirstOrDefault(n => n.NDB_Number == usda_food.NDB_Number && n.Name == "Protein"); var weightGm = usda_servingSizes.FirstOrDefault(n => n.NDB_Number == usda_food.NDB_Number); if ((leucineMg != null || proteinMg != null) && weightGm != null && !string.IsNullOrEmpty(weightGm.ServingSize) && !string.IsNullOrEmpty(usda_food.Manufacturer)) { var food = new Food() { Id = usda_food.Id, Created = DateTime.Now, Name = usda_food.Name.Replace(",", " ").ToLower().Transform(To.TitleCase), WeightGrams = double.Parse(weightGm.ServingSize), Manufacturer = usda_food.Manufacturer.Replace(",", " ").ToLower().Transform(To.TitleCase) }; if (leucineMg != null) { food.LeucineMilligrams = double.Parse(leucineMg.Value); } if (proteinMg != null) { food.ProteinGrams = double.Parse(proteinMg.Value); } if (File.Exists(@"C:\Output\Output.csv")) { using (var tw = new StreamWriter(@"C:\Output\Output.csv", true)) { tw.WriteLine(food.Id + "," + "2019-07-02 00:00:00" + "," + "2019-07-02 00:00:00" + "," + food.Name + "," + food.ProteinGrams + "," + food.LeucineMilligrams + "," + food.WeightGrams + "," + food.Manufacturer); } } } } } }
public static Dictionary <string, string> ParseData(string dataString) { Dictionary <string, string> returnData = new Dictionary <string, string>(); returnData.Add("startDate", ""); returnData.Add("endDate", ""); returnData.Add("newCasesToday", ""); returnData.Add("newCaseFortnightAverage", ""); returnData.Add("deathFortnightAverage", ""); // Data string is csv, parse to JSON instead StringBuilder stringData = new StringBuilder(); stringData.Append("{\"data\":"); using (var p = ChoCSVReader.LoadText(dataString).WithFirstLineHeader()) { using (var w = new ChoJSONWriter(stringData)) { w.Write(p); } } stringData.Append("}"); JObject dataObject = JObject.Parse(stringData.ToString()); JToken dataToken = dataObject["data"]; JEnumerable <JToken> dataUnits = dataToken.Children(); List <dataPoint> dataPoints = new List <dataPoint>(); int newCaseCount; int deathCount; foreach (JToken token in dataUnits) { // Filter out any data that's not for Vic if (token.SelectToken("state").ToString() != "\\\"Victoria\\\"") { continue; } Int32.TryParse(token.SelectToken("confirmed").ToString(), out newCaseCount); Int32.TryParse(token.SelectToken("deaths").ToString(), out deathCount); dataPoints.Add(new dataPoint { dateTime = DateTime.Parse(token.SelectToken("date").ToString()), newCaseCount = newCaseCount, deathCount = deathCount }); } dataPoint[] dataArray = dataPoints.ToArray(); int index = dataArray.Length - 1; double newCaseFortnightAverage = 0; double deathFortnightAverage = 0; for (int i = 0; i < 13; i++) { newCaseCount = dataArray[index - i].newCaseCount; newCaseFortnightAverage += newCaseCount; deathCount = dataArray[index - i].deathCount; deathFortnightAverage += deathCount; } returnData["newCaseFortnightAverage"] = Math.Round(newCaseFortnightAverage / 14, 1).ToString(); returnData["deathFortnightAverage"] = Math.Round(deathFortnightAverage / 14, 1).ToString(); returnData["endDate"] = dataArray[index].dateTime.ToString("dddd, dd MMMM yyyy"); returnData["startDate"] = dataArray[index - 13].dateTime.ToString("dddd, dd MMMM yyyy"); returnData["newCasesToday"] = dataArray[index].newCaseCount.ToString(); return(returnData); }