Example #1
0
        static void ComplexObjTest()
        {
            StringBuilder sb  = new StringBuilder();
            var           obj = new Lad
            {
                firstName   = "Markoff",
                lastName    = "Chaney",
                dateOfBirth = new MyDate
                {
                    year  = 1901,
                    month = 4,
                    day   = 30
                }
            };

            using (var jr = new ChoJSONWriter <Lad>(sb)
                   )
            {
                jr.Write(obj);
            }

            Console.WriteLine(sb.ToString());
        }
Example #2
0
        static void Yaml2JsonTypeIssue()
        {
            string yaml = @"
EntityId:
    type: integer
    example: 1245

EntityIds:
    type: array
    items:
        $ref: EntityId
    example: [152, 6542, 23]
    isActive: true
";

            using (var r = ChoYamlReader.LoadText(yaml))
            {
                using (var w = new ChoJSONWriter(Console.Out)
                               .SupportMultipleContent(true)
                               .SingleElement()
                       )
                    w.Write(r);
            }
        }
Example #3
0
        /// <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));
        }
Example #4
0
 /// <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;
     }
 }
Example #5
0
        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);
        }
Example #6
0
        static void NestedJSONFile()
        {
            var dataMapperModels = new List <DataMapper>();
            var model            = new DataMapper
            {
                Name           = "performanceLevels",
                SubDataMappers = new List <DataMapper>()
                {
                    new DataMapper()
                    {
                        Name           = "performanceLevel_1",
                        SubDataMappers = new List <DataMapper>()
                        {
                            new DataMapper()
                            {
                                Name = "title",
                                DataMapperProperty = new DataMapperProperty()
                                {
                                    Source       = "column",
                                    SourceColumn = "title-column",
                                    DataType     = "string",
                                    Default      = "N/A",
                                    SourceTable  = null,
                                    Value        = null
                                }
                            },
                            new DataMapper()
                            {
                                Name = "version1",
                                DataMapperProperty = new DataMapperProperty()
                                {
                                    Source       = "column",
                                    SourceColumn = "version-column",
                                    DataType     = "int",
                                    Default      = "1",
                                    SourceTable  = null,
                                    Value        = null
                                }
                            },
                            new DataMapper()
                            {
                                Name           = "threeLevels",
                                SubDataMappers = new List <DataMapper>()
                                {
                                    new DataMapper()
                                    {
                                        Name = "version",
                                        DataMapperProperty = new DataMapperProperty()
                                        {
                                            Source       = "column",
                                            SourceColumn = "version-column",
                                            DataType     = "int",
                                            Default      = "1",
                                            SourceTable  = null,
                                            Value        = null
                                        }
                                    }
                                }
                            }
                        }
                    },
                    new DataMapper()
                    {
                        Name           = "performanceLevel_2",
                        SubDataMappers = new List <DataMapper>()
                        {
                            new DataMapper()
                            {
                                Name = "title",
                                DataMapperProperty = new DataMapperProperty()
                                {
                                    Source       = "column",
                                    SourceColumn = "title-column",
                                    DataType     = "string",
                                    Default      = "N/A",
                                    SourceTable  = null,
                                    Value        = null
                                }
                            },
                            new DataMapper()
                            {
                                Name = "version",
                                DataMapperProperty = new DataMapperProperty()
                                {
                                    Source       = "column",
                                    SourceColumn = "version-column",
                                    DataType     = "int",
                                    Default      = "1",
                                    SourceTable  = null,
                                    Value        = null
                                }
                            }
                        }
                    }
                }
            };

            dataMapperModels.Add(model);
            using (var w = new ChoJSONWriter("nested.json")
                   )
                w.Write(dataMapperModels);
        }
Example #7
0
        static void SerializeAndDeserializeDynamicTest()
        {
            string path = "AvroSampleReflection.avro";
            //SerializeDynamicSampleFile(path);

            var dict = new Dictionary <string, object>();

            dict.Add("1", 3);
            dict.Add("2", new Location {
                Room = 243, Floor = 1
            });

            ChoAvroRecordConfiguration config = null;
            AvroSerializerSettings     sett1  = null;

            using (var w = new ChoAvroWriter(path)
                           .WithAvroSerializer(AvroSerializer.Create <Dictionary <string, object> >(new AvroSerializerSettings()
            {
                Resolver = new ChoAvroPublicMemberContractResolver()
            }))
                           .Configure(c => c.KnownTypes = new List <Type> {
                typeof(Location), typeof(string), typeof(int)
            })
                           //.Configure(c => c.UseAvroSerializer = true)
                           //.Configure(c => c.AvroSerializerSettings.Resolver = new AvroDataContractResolverEx())
                   )
            {
                sett1  = w.Configuration.AvroSerializerSettings;
                config = w.Configuration;

                w.Write(dict);
                w.Write(dict);
                w.Write(dict);
            }
            //var sett = new AvroSerializerSettings();
            //sett.Resolver = new ChoAvroPublicMemberContractResolver(); // false) { Configuration = config };
            //sett.KnownTypes = new List<Type> { typeof(Location), typeof(string), typeof(int) };
            //var avroSerializer = AvroSerializer.Create<Dictionary<string, object>>(sett1);
            //using (var r = new StreamReader(path))
            //{
            //    var rec = avroSerializer.Deserialize(r.BaseStream);
            //    var rec2 = avroSerializer.Deserialize(r.BaseStream);
            //    var rec3 = avroSerializer.Deserialize(r.BaseStream);
            //    Console.WriteLine(rec.Dump());
            //    Console.WriteLine(rec2.Dump());
            //    Console.WriteLine(rec3.Dump());
            //    //var rec4 = avroSerializer.Deserialize(r);
            //}

            StringBuilder json = new StringBuilder();

            using (var r = new ChoAvroReader(path)
                           .Configure(c => c.KnownTypes = new List <Type> {
                typeof(Location), typeof(string), typeof(int)
            })
                           .Configure(c => c.UseAvroSerializer = true)
                           //.Configure(c => c.AvroSerializerSettings = sett1)
                           .Configure(c => c.NestedColumnSeparator = '_')
                   )
            {
                //var dt = r.AsDataTable();
                //Console.WriteLine(dt.Dump());
                //return;
                //foreach (var rec in r)
                //{
                //    Console.WriteLine(rec.Dump());
                //}
                //return;
                using (var w = new ChoJSONWriter(json)
                               .Configure(c => c.TurnOnAutoDiscoverJsonConverters = true)
                       )
                {
                    w.Write(r);
                }
            }
            Console.WriteLine(json.ToString());
        }
Example #8
0
        static void POCOTest()
        {
            string path = "AvroPOCOSample1.avro";

            //SerializePOCOSampleFile(path);

            //var sett = new AvroSerializerSettings();
            //sett.Resolver = new ChoAvroPublicMemberContractResolver();
            //sett.KnownTypes = new List<Type> { typeof(Location), typeof(string) };
            //var avroSerializer = AvroSerializer.Create<SensorData>(sett);

            //using (var buffer = new StreamReader(File.OpenRead(path)))
            //{
            //    var actual1 = avroSerializer.Deserialize(buffer.BaseStream);
            //    var actual2 = avroSerializer.Deserialize(buffer.BaseStream);

            //    Console.WriteLine(actual1.Dump());
            //}
            //return;
            var testData = new List <SensorData>
            {
                new SensorData {
                    Value = new byte[] { 1, 2, 3, 4, 5 }, Position = new Location {
                        Room = 243, Floor = 1
                    }
                },
                new SensorData {
                    Value = new byte[] { 6, 7, 8, 9 }, Position = new Location {
                        Room = 244, Floor = 1
                    }
                }
            };

            using (var w = new ChoAvroWriter <SensorData>(path)
                   )
            {
                //w.Write(testData);
                w.Write(new SensorData {
                    Value = new byte[] { 1, 2, 3, 4, 5 }, Position = new Location {
                        Room = 243, Floor = 1
                    }
                });
                w.Write(new SensorData {
                    Value = new byte[] { 6, 7, 8, 9 }, Position = new Location {
                        Room = 244, Floor = 1
                    }
                });
            }

            StringBuilder json = new StringBuilder();

            using (var r = new ChoAvroReader <SensorData>(path)
                           //.WithAvroSerializer(AvroSerializer.Create<Dictionary<string, object>>(new AvroSerializerSettings()))
                   )
            {
                foreach (var rec in r)
                {
                    Console.WriteLine(rec.Dump());
                }
                return;

                using (var w = new ChoJSONWriter(json)
                               .Configure(c => c.TurnOnAutoDiscoverJsonConverters = true)
                       )
                {
                    w.Write(r);
                }
            }
            Console.WriteLine(json.ToString());
        }
Example #9
0
        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);
        }
Example #10
0
        static void Issue167()
        {
            var completeFile = new CompleteFile
            {
                DataSource = "DataSource",
                DataType   = 1,
                Samples    = new Samples
                {
                    Samples1 = new List <Data>
                    {
                        new Data
                        {
                            Prop00     = 0,
                            Prop01     = "Prop01",
                            Properties = new Properties
                            {
                                Prop10 = 1,
                                Prop11 = 2,
                            }
                        },
                        new Data
                        {
                            Prop00     = 0,
                            Prop01     = "Prop01",
                            Properties = new Properties
                            {
                                Prop10 = 1,
                                Prop11 = 2,
                            }
                        },
                        new Data
                        {
                            Prop00     = 0,
                            Prop01     = "Prop01",
                            Properties = new Properties
                            {
                                Prop10 = 1,
                                Prop11 = 2,
                            }
                        },
                    },
                    Samples2 = new List <Data>
                    {
                        new Data
                        {
                            Prop00     = 0,
                            Prop01     = "Prop01",
                            Properties = new Properties
                            {
                                Prop10 = 1,
                                Prop11 = 2,
                            }
                        },
                        new Data
                        {
                            Prop00     = 0,
                            Prop01     = "Prop01",
                            Properties = new Properties
                            {
                                Prop10 = 1,
                                Prop11 = 2,
                            }
                        },
                        new Data
                        {
                            Prop00     = 0,
                            Prop01     = "Prop01",
                            Properties = new Properties
                            {
                                Prop10 = 1,
                                Prop11 = 2,
                            }
                        },
                    },
                    Samples3 = new List <Data>
                    {
                        new Data
                        {
                            Prop00     = 0,
                            Prop01     = "Prop01",
                            Properties = new Properties
                            {
                                Prop10 = 1,
                                Prop11 = 2,
                            }
                        },
                        new Data
                        {
                            Prop00     = 0,
                            Prop01     = "Prop01",
                            Properties = new Properties
                            {
                                Prop10 = 1,
                                Prop11 = 2,
                            }
                        },
                        new Data
                        {
                            Prop00     = 0,
                            Prop01     = "Prop01",
                            Properties = new Properties
                            {
                                Prop10 = 1,
                                Prop11 = 2,
                            }
                        },
                    },
                    Sample4 = new Data
                    {
                        Prop00     = 0,
                        Prop01     = "Prop01",
                        Properties = new Properties
                        {
                            Prop10 = 1,
                            Prop11 = 2,
                        }
                    },
                }
            };

            StringBuilder json = new StringBuilder();

            using (var w = new ChoJSONWriter <CompleteFile>(json)
                   )
            {
                w.Write(completeFile);
            }

            json.Print();

            using (var r = ChoJSONReader <CompleteFile> .LoadText(json.ToString())
                           .UseJsonSerialization()
                   )
            {
                using (var w = new ChoParquetWriter("CompleteFile.parquet")
                       )
                {
                    w.Write(r.Select(rec1 => rec1.FlattenToDictionary()));
                }

                //using (var w = new ChoParquetWriter<CompleteFile>("CompleteFile.parquet")
                //    .WithField(f => f.Samples, valueConverter: o => "x", fieldType: typeof(string))
                //    )
                //{
                //    w.Write(r); //.Select(rec1 => rec1.Flatten().ToDictionary()));
                //}
            }
        }
Example #11
0
        static void Main(string[] args)
        {
            ConvertToNestedObjects();
            return;

            //System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("it");

            //using (var p = new ChoCSVReader("Bosch Luglio 2017.csv")
            //    .Configure((c) => c.MayContainEOLInData = true) //Handle newline chars in data
            //    .Configure(c => c.Encoding = Encoding.GetEncoding("iso-8859-1")) //Specify the encoding for reading
            //    .WithField("CodArt", 1) //first column
            //    .WithField("Descrizione", 2) //second column
            //    .WithField("Prezzo", 3, fieldType: typeof(decimal)) //third column
            //    .Setup(c => c.BeforeRecordLoad += (o, e) =>
            //    {
            //        e.Source = e.Source.CastTo<string>().Replace(@"""", String.Empty); //Remove the quotes
            //    }) //Scrub the data
            //    )
            //{
            //    //var dt = p.AsDataTable();

            //    foreach (var rec in p)
            //        Console.WriteLine(rec.Prezzo);
            //}
            //return;
            //using (var parser = new ChoCSVReader("Dict1.csv")
            //    .WithField("AR_ID", 7)
            //    .WithField("AR_TYPE", 8)
            //    .WithFirstLineHeader(true)
            //    .Configure(c => c.IgnoreEmptyLine = true)
            //    )
            //{
            //    var dict = parser.ToDictionary(item => item.AR_ID, item => item.AR_TYPE);
            //    foreach (var kvp in dict)
            //        Console.WriteLine(kvp.Key + " " + kvp.Value);
            //}
            //return;

            //return;
            using (var parser = new ChoCSVReader("IgnoreLineFile1.csv")
                                .WithField("PolicyNumber", 1)
                                .WithField("VinNumber", 2)
                                .Configure(c => c.IgnoreEmptyLine = true)
                                .Configure(c => c.ColumnCountStrict = true)
                   )
            {
                using (var writer = new ChoJSONWriter("ignoreLineFile1.json")
                                    .WithField("PolicyNumber", fieldName: "Policy Number")
                                    .WithField("VinNumber", fieldName: "Vin Number")
                       )
                    writer.Write(parser.Skip(1));
            }
            return;

            //foreach (dynamic rec in new ChoCSVReader("emp.csv").WithFirstLineHeader()
            //    .WithFields(" id ", "Name")
            //    .Configure(c => c.FileHeaderConfiguration.IgnoreCase = false)
            //    .Configure(c => c.FileHeaderConfiguration.TrimOption = ChoFieldValueTrimOption.None)
            //    .Configure(c => c.ThrowAndStopOnMissingField = true)
            //    //.Configure(c => c.ColumnOrderStrict = false)
            //    )
            //{
            //    Console.WriteLine(rec.id);
            //    //Console.WriteLine(rec[" id "]);
            //}
            //return;
            //foreach (var rec in new ChoCSVReader<EmployeeRec>("emp.csv")
            //    .Configure(c => c.FileHeaderConfiguration.IgnoreCase = false)
            //    .Configure(c => c.ThrowAndStopOnMissingField = true)
            //    )
            //{
            //    Console.WriteLine(rec.Id);
            //}

            //return;

            //Set the culture, if your system different from the file type
            //HierarchyCSV();
            //return;
            foreach (dynamic rec in new ChoCSVReader("CurrencyQuotes.csv").WithDelimiter(";")
                     .WithField("F1", 14, fieldType: typeof(int))
                     .WithField("F2", 15, fieldType: typeof(int))
                     .WithField("F3", 16, fieldType: typeof(int))
                     .Configure(c => c.ErrorMode = ChoErrorMode.ReportAndContinue)
                     )
            {
                Console.WriteLine("{0}", rec.F1);
            }
            return;

            //string txt = @"ZipCode  SortCode  3rd  ";
            //foreach (var x2 in txt.Split("  ", ChoStringSplitOptions.All, '"'))
            //    Console.WriteLine(x2);
            //return;
            CultureSpecificDateTimeTest();
            return;


            var x = 1;

            //Console.WriteLine(@_2);

            ////var identifierRegex = new System.Text.RegularExpressions.Regex(@"(?<=^| )(?!\d)\w+|(?<= )(?!\d)\w+(?= |$)");
            ////Console.WriteLine(Regex.Replace("1sas3", @"(?<=^| )(?!\d)\w+|(?<= )(?!\d)\w+(?= |$)", "_"));
            ////return;
            //var i = Microsoft.CSharp.CSharpCodeProvider.CreateProvider("C#").CreateValidIdentifier("@Main 12");
            //Console.WriteLine(i.ToValidVariableName());
            //return;
            QuotedCSVTest();
        }