예제 #1
0
        static void Main(string[] args)
        {
            HttpClient client    = new HttpClient();
            var        hasValues = true;

            List <Rootobject> obj = new List <Rootobject>();

            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            client.Timeout = new TimeSpan(0, 2, 30);
            var json = "";


            var url = string.Format("https://airapi.airly.eu/v1/sensorsWithWios/current?southwestLat=49&southwestLong=22&northeastLat=54&northeastLong=18&apikey=TsTYb8xiNEI5c4Uc92GiFofG4DnP1W0l");
            HttpResponseMessage response = client.GetAsync(url).Result;

            if (response.IsSuccessStatusCode)
            {
                var temp = response.Content.ReadAsStringAsync().Result;
                Console.WriteLine("response ");
                if (temp == "[]")
                {
                    hasValues = false;
                    Console.WriteLine("The list is empty");
                }
                else
                {
                    json = temp;


                    var rootOBjList = JsonConvert.DeserializeObject <List <Rootobject> >(json);
                    obj.AddRange(rootOBjList);

                    //Converting objects to csv file
                    using (var parser = new ChoCSVWriter <Rootobject>("Emp.csv").WithFirstLineHeader())
                    {
                        Console.WriteLine("Inserting into csv....");
                        parser.Write(obj);
                    }
                }
            }
        }
예제 #2
0
        static void ToTextTest()
        {
            ChoTypeConverterFormatSpec.Instance.DateTimeFormat = "G";
            ChoTypeConverterFormatSpec.Instance.BooleanFormat  = ChoBooleanFormatSpec.YesOrNo;
            //ChoTypeConverterFormatSpec.Instance.EnumFormat = ChoEnumFormatSpec.Name;

            List <EmployeeRec> objs = new List <EmployeeRec>();
            EmployeeRec        rec1 = new EmployeeRec();

            rec1.Id   = 10;
            rec1.Name = "Mark";
            objs.Add(rec1);

            EmployeeRec rec2 = new EmployeeRec();

            rec2.Id   = 200;
            rec2.Name = "Lou";
            objs.Add(rec2);

            Console.WriteLine(ChoCSVWriter.ToText(objs));
        }
예제 #3
0
파일: Program.cs 프로젝트: xman086/ChoETL
        static void ByteArrayTest()
        {
            StringBuilder csv = new StringBuilder();

            using (var r = new ChoParquetReader(@"C:\Projects\GitHub\ChoETL\src\Test\ChoParquetWriterTest\bin\Debug\netcoreapp2.1\ByteArrayTest.parquet")
                           .ParquetOptions(o => o.TreatByteArrayAsString = true)
                   )
            {
                var dt = r.AsDataTable("x");
                Console.WriteLine(ChoJSONWriter.ToText(dt));
                return;

                using (var w = new ChoCSVWriter(csv)
                               .WithFirstLineHeader()
                               .UseNestedKeyFormat(false)
                       )
                    w.Write(r);
            }

            Console.WriteLine(csv.ToString());
        }
예제 #4
0
        public IResult Report(ReportInfo reportInfo)//raporlama
        {
            var result = GetReport(reportInfo);

            try
            {
                File.Delete($"wwwroot/csv/{reportInfo.UserId}.csv");
                using (var w = new ChoCSVWriter <Report>($"wwwroot/csv/{reportInfo.UserId}.csv").WithFirstLineHeader())
                {
                    w.Write(result.Data);
                    w.Dispose();
                }

                return(new SuccessResult());
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }

            return(new ErrorResult());
        }
예제 #5
0
 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());
     }
 }
예제 #6
0
        static void TestHashtable()
        {
            Hashtable ht = new Hashtable();

            ht.Add(1, "Raj");
            ht.Add(2, "Tom");

            StringBuilder sb = new StringBuilder();

            using (var w = new ChoCSVWriter(sb)
                           .WithFirstLineHeader()
                           .WithField("Key", fieldName: "Id")
                           .WithField("Value", fieldName: "Name")
                   )
            {
                w.Write(ht);
                w.Write(ht);
                w.Write((Hashtable)null);
                w.Write(1);
            }
            Console.WriteLine(sb.ToString());
        }
예제 #7
0
        static void EnumTest()
        {
            ChoTypeConverterFormatSpec.Instance.EnumFormat = ChoEnumFormatSpec.Description;

            List <ExpandoObject> objs = new List <ExpandoObject>();
            dynamic rec1 = new ExpandoObject();

            rec1.Id         = 10;
            rec1.Name       = "Mark";
            rec1.JoinedDate = new DateTime(2001, 2, 2);
            rec1.IsActive   = true;
            rec1.Salary     = new ChoCurrency(100000);
            rec1.Status     = EmployeeType.Permanent;
            objs.Add(rec1);

            dynamic rec2 = new ExpandoObject();

            rec2.Id         = 200;
            rec2.Name       = "Lou";
            rec2.JoinedDate = new DateTime(1990, 10, 23);
            rec2.IsActive   = false;
            rec2.Salary     = new ChoCurrency(150000);
            rec2.Status     = EmployeeType.Contract;
            objs.Add(rec2);

            using (var stream = new MemoryStream())
                using (var reader = new StreamReader(stream))
                    using (var writer = new StreamWriter(stream))
                        using (var parser = new ChoCSVWriter(writer).WithFirstLineHeader().QuoteAllFields())
                        {
                            parser.Write(objs);

                            writer.Flush();
                            stream.Position = 0;

                            Console.WriteLine(reader.ReadToEnd());
                        }
        }
예제 #8
0
        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());
        }
예제 #9
0
        static void TestDictionary()
        {
            Dictionary <int, Manager> ht = new Dictionary <int, Manager>();

            ht.Add(1, new Manager {
                Name = "TOm", Salary = 10000, Department = "IT"
            });
            Dictionary <int, Employee> ht1 = new Dictionary <int, Employee>();

            ht1.Add(1, new Employee {
                Name = "TOm"
            });

            StringBuilder sb = new StringBuilder();

            using (var w = new ChoCSVWriter(sb)
                           .WithFirstLineHeader()
                   )
            {
                w.Write(ht);
            }
            Console.WriteLine(sb.ToString());
        }
예제 #10
0
        static void CodeFirstWithDeclarativeApproachWriteRecordsToFile()
        {
            List <EmployeeRec> objs = new List <EmployeeRec>();
            EmployeeRec        rec1 = new EmployeeRec();

            rec1.Id   = 10;
            rec1.Name = "Mark";
            objs.Add(rec1);

            EmployeeRec rec2 = new EmployeeRec();

            rec2.Id   = 200;
            rec2.Name = "Lou";
            objs.Add(rec2);

            using (var tx = File.OpenWrite("Emp.csv"))
            {
                using (var parser = new ChoCSVWriter <EmployeeRec>(tx))
                {
                    parser.Write(objs);
                }
            }
        }
예제 #11
0
        static void FormatSpecDynamicTest()
        {
            ChoTypeConverterFormatSpec.Instance.DateTimeFormat = "d";
            ChoTypeConverterFormatSpec.Instance.BooleanFormat  = ChoBooleanFormatSpec.YOrN;

            List <ExpandoObject> objs = new List <ExpandoObject>();
            dynamic rec1 = new ExpandoObject();

            rec1.Id         = 10;
            rec1.Name       = "Mark";
            rec1.JoinedDate = new DateTime(2001, 2, 2);
            rec1.IsActive   = true;
            rec1.Salary     = 100000;
            objs.Add(rec1);

            dynamic rec2 = new ExpandoObject();

            rec2.Id         = 200;
            rec2.Name       = "Lou";
            rec2.JoinedDate = new DateTime(1990, 10, 23);
            rec2.IsActive   = false;
            rec2.Salary     = 150000;
            objs.Add(rec2);

            using (var stream = new MemoryStream())
                using (var reader = new StreamReader(stream))
                    using (var writer = new StreamWriter(stream))
                        using (var parser = new ChoCSVWriter(writer).WithFirstLineHeader())
                        {
                            parser.Write(objs);

                            writer.Flush();
                            stream.Position = 0;

                            Console.WriteLine(reader.ReadToEnd());
                        }
        }
예제 #12
0
        static void DataFirstApproachWriteSingleRecord()
        {
            using (var stream = new MemoryStream())
                using (var reader = new StreamReader(stream))
                    using (var writer = new StreamWriter(stream))
                        using (var parser = new ChoCSVWriter(writer))
                        {
                            dynamic rec1 = new ExpandoObject();
                            rec1.Id   = 1;
                            rec1.Name = "Mark";

                            parser.Write(rec1);

                            dynamic rec2 = new ExpandoObject();
                            rec2.Id   = 2;
                            rec2.Name = "Jason";
                            parser.Write(rec2);

                            writer.Flush();
                            stream.Position = 0;

                            Console.WriteLine(reader.ReadToEnd());
                        }
        }
        public async Task <GameStarFSDTO[]> Get()
        {
            string path = AppDomain.CurrentDomain.BaseDirectory + @"pauseproject.json";

            Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", path);
            database = FirestoreDb.Create("pauseproject-349dd");
            var res = await GetCollection();

            string filepath = AppDomain.CurrentDomain.BaseDirectory;

            using (StreamWriter file = new System.IO.StreamWriter(filepath + @"\..\..\..\Data\users.json"))
            {
                JsonSerializer serializer = new JsonSerializer();
                serializer.Serialize(file, res);
            }
            using (var r = new ChoJSONReader(filepath + @"\..\..\..\Data\users.json"))
            {
                using (var w = new ChoCSVWriter(filepath + @"\..\..\..\Data\" + "users.csv").WithFirstLineHeader())
                {
                    w.Write(r);
                }
            }
            return(res);
        }
예제 #14
0
        static void IntArrayTest()
        {
            dynamic address = new ChoDynamicObject();

            address.Street = "10 River Rd";
            address.City   = "Princeton";

            dynamic state = new ChoDynamicObject();

            state.State = "NJ";
            state.Zip   = "09930";

            address.State = state;

            using (var w = new ChoCSVWriter("intarray.csv")
                           .Setup(s => s.RecordFieldWriteError += (o, e) => Console.WriteLine(e.Exception.ToString()))
                           .Configure(c => c.NestedColumnSeparator = '/')
                   )
            {
                //w.Write(new KeyValuePair<int, string>(1, "MM"));
                //w.Write(new KeyValuePair<int, string>(1, "MM"));
                w.Write(new { id = "1s->", address = address });
            }
        }
예제 #15
0
        static void CodeFirstWithDeclarativeApproachWriteRecords()
        {
            ChoTypeConverterFormatSpec.Instance.DateTimeFormat = "G";
            //ChoTypeConverterFormatSpec.Instance.BooleanFormat = ChoBooleanFormatSpec.YesOrNo;
            //ChoTypeConverterFormatSpec.Instance.EnumFormat = ChoEnumFormatSpec.Name;

            List <EmployeeRec> objs = new List <EmployeeRec>();
            EmployeeRec        rec1 = new EmployeeRec();

            rec1.Id   = 10;
            rec1.Name = "Mark";
            objs.Add(rec1);

            EmployeeRec rec2 = new EmployeeRec();

            rec2.Id   = 200;
            rec2.Name = "Lou";
            objs.Add(rec2);

            using (var stream = new MemoryStream())
                using (var reader = new StreamReader(stream))
                    using (var writer = new StreamWriter(stream))
                        using (var parser = new ChoCSVWriter <EmployeeRec>(writer))
                        {
                            parser.BeforeRecordFieldWrite += (o, e) =>
                            {
                                Console.WriteLine(e.PropertyName);
                            };
                            parser.Write(objs);

                            writer.Flush();
                            stream.Position = 0;

                            Console.WriteLine(reader.ReadToEnd());
                        }
        }
예제 #16
0
        static void Main(string[] args)
        {
            /*  List<Rootobject> obj = new List<Rootobject>();
             * var anonymousData = from pl in obj
             *                    select new
             *                    {
             *                        pl.id,
             *                        pl.uuid,
             *                        pl.name,
             *                        pl.description,
             *                        pl.state
             *                    };*/



            using (var csv = new ChoCSVWriter("emp2.csv").WithFirstLineHeader())
            {
                using (var json = new ChoJSONReader("all.json"))
                {
                    csv.Write(json.Select(i => new
                    {
                        // Info about device
                        Id                = i.id != null ? i.id : 0,
                        DeviceUuid        = i.uuid != null ? i.uuid : null,
                        DeviceName        = i.name != null ? i.name : null,
                        DeviceDescription = i.description != null ? i.description : null,
                        DeviceState       = i.state != null ? i.state : null,
                        SystemTags        = i.system_tags.Length > 0 ? i.system_tags[0] : null,


                        UserTags    = i.user_tags.Length > 0 ? i.user_tags[0] : null,
                        LastReading = i.last_reading_at != null ? i.last_reading_at : null,
                        AddedAt     = i.added_at != null ? i.added_at : null,
                        Updated     = i.updated_at != null ? i.updated_at : null,
                        MacAddress  = i.mac_address != null ? i.mac_address : null,

                        //Info about owner
                        OwnerID          = i.owner != null ? i.owner.id : 0,
                        OwnerUuid        = i.owner != null ? i.owner.uuid : null,
                        OwnerUserName    = i.owner != null ? i.owner.username : null,
                        OwnerAvatar      = i.owner != null ? i.owner.avatar : null,
                        OwnerUrl         = i.owner != null ? i.owner.url : null,
                        OwnerJoinDate    = i.owner != null ? i.owner.joined_at : null,
                        OwnerCity        = i.owner != null ? i.owner.location.city : null,
                        OwnerCountry     = i.owner != null ? i.owner.location.country : null,
                        OwnerCountryCode = i.owner != null ? i.owner.location.country_code : null,
                        // DeviceIds = i.owner.device_ids.Length > 0 ? i.owner.device_ids[0] : 0,



                        //Info about data

                        DataRecorded_At = i.data != null ? i.data.recorded_at : null,
                        DataAdded_At    = i.data != null ? i.data.added_at : null,
                        DataLocation    = i.data.ip != null ? i.data.location.ip : null,
                        DataExposure    = i.data != null ? i.data.location.exposure : null,
                        DataElevation   = i.data != null ? i.data.location.elevation : 0,
                        DataLatitude    = i.data != null ? i.data.location.latitude : 0,
                        DataLongitude   = i.data != null ? i.data.location.longitude : 0,
                        DataGeoLocation = i.data != null ? i.data.location.geohash : null,
                        DataCity        = i.data != null ? i.data.location.city : null,
                        DataCountryCode = i.data != null ? i.data.location.country_code : null,
                        DataCountry     = i.data != null ? i.data.location.country : null,



                        //SensorBattery
                        BSensorsId            = i.data.sensors.Length > 0 ? i.data.sensors[0].id : 0,
                        BSensortAncestry      = i.data.sensors.Length > 0 ? i.data.sensors[0].ancestry : null,
                        BSensorName           = i.data.sensors.Length > 0 ? i.data.sensors[0].name : null,
                        BSensorDescription    = i.data.sensors.Length > 0 ? i.data.sensors[0].description : null,
                        BSensorUnit           = i.data.sensors.Length > 0 ? i.data.sensors[0].unit : 0,
                        BSensorCreatedAt      = i.data.sensors.Length > 0 ? i.data.sensors[0].created_at : DateTime.MinValue,
                        BSensorUpdated_at     = i.data.sensors.Length > 0 ? i.data.sensors[0].updated_at : DateTime.MinValue,
                        BSensorMeasurement_id = i.data.sensors.Length > 0 ? i.data.sensors[0].measurement_id : 0,
                        BSensorUuid           = i.data.sensors.Length > 0 ? i.data.sensors[0].uuid : null,
                        BSensorValue          = i.data.sensors.Length > 0 ? i.data.sensors[0].value : 0,
                        BSensorRawValue       = i.data.sensors.Length > 0 ? i.data.sensors[0].raw_value : 0,
                        BSensorPrevValue      = i.data.sensors.Length > 0 ? i.data.sensors[0].prev_value : 0,
                        BSensorPrevRawValue   = i.data.sensors.Length > 0 ? i.data.sensors[0].prev_raw_value : 0,
                        //SensorHumidity

                        SensorsHId            = i.data.sensors.Length > 1 ? i.data.sensors[1].id : 0,
                        SensortHAncestry      = i.data.sensors.Length > 1 ? i.data.sensors[1].ancestry : null,
                        SensorHName           = i.data.sensors.Length > 1 ? i.data.sensors[1].name : null,
                        SensorHDescription    = i.data.sensors.Length > 1 ? i.data.sensors[1].description : null,
                        SensorHUnit           = i.data.sensors.Length > 1 ? i.data.sensors[1].unit : 0,
                        SensorHCreatedAt      = i.data.sensors.Length > 1 ? i.data.sensors[1].created_at : DateTime.MinValue,
                        SensorHUpdated_at     = i.data.sensors.Length > 1 ? i.data.sensors[1].updated_at : DateTime.MinValue,
                        SensorHMeasurement_id = i.data.sensors.Length > 1 ? i.data.sensors[1].measurement_id : 0,
                        SensorHUuid           = i.data.sensors.Length > 1 ? i.data.sensors[1].uuid : null,
                        SensorHValue          = i.data.sensors.Length > 1 ? i.data.sensors[1].value : 0,
                        SensorHRawValue       = i.data.sensors.Length > 1 ? i.data.sensors[1].raw_value : 0,
                        SensorHPrevValue      = i.data.sensors.Length > 1 ? i.data.sensors[1].prev_value : 0,
                        SensorHPrevRawValue   = i.data.sensors.Length > 1 ? i.data.sensors[1].prev_raw_value : 0,

                        //Temperature
                        TSensorsId            = i.data.sensors.Length > 2 ? i.data.sensors[2].id : 0,
                        TSensortAncestry      = i.data.sensors.Length > 2 ? i.data.sensors[2].ancestry : null,
                        TSensorName           = i.data.sensors.Length > 2 ? i.data.sensors[2].name : null,
                        TSensorDescription    = i.data.sensors.Length > 2 ? i.data.sensors[2].description : null,
                        TSensorUnit           = i.data.sensors.Length > 2 ? i.data.sensors[2].unit : 0,
                        TSensorCreatedAt      = i.data.sensors.Length > 2 ? i.data.sensors[2].created_at : DateTime.MinValue,
                        TSensorUpdated_at     = i.data.sensors.Length > 2 ? i.data.sensors[2].updated_at : DateTime.MinValue,
                        TSensorMeasurement_id = i.data.sensors.Length > 2 ? i.data.sensors[2].measurement_id : 0,
                        TSensorUuid           = i.data.sensors.Length > 2 ? i.data.sensors[2].uuid : null,
                        TSensorValue          = i.data.sensors.Length > 2 ? i.data.sensors[2].value : 0,
                        TSensorRawValue       = i.data.sensors.Length > 2 ? i.data.sensors[2].raw_value : 0,
                        TSensorPrevValue      = i.data.sensors.Length > 2 ? i.data.sensors[2].prev_value : 0,
                        TSensorPrevRawValue   = i.data.sensors.Length > 2 ? i.data.sensors[2].prev_raw_value : 0,

                        //No2 gas sensor

                        GasSensorsId            = i.data.sensors.Length > 3 ? i.data.sensors[3].id : 0,
                        GasSensortAncestry      = i.data.sensors.Length > 3 ? i.data.sensors[3].ancestry : null,
                        GasSensorName           = i.data.sensors.Length > 3 ? i.data.sensors[3].name : null,
                        GasSensorDescription    = i.data.sensors.Length > 3 ? i.data.sensors[3].description : null,
                        GasSensorUnit           = i.data.sensors.Length > 3 ? i.data.sensors[3].unit : 0,
                        GasSensorCreatedAt      = i.data.sensors.Length > 3 ? i.data.sensors[3].created_at : DateTime.MinValue,
                        GasSensorUpdated_at     = i.data.sensors.Length > 3 ? i.data.sensors[3].updated_at : DateTime.MinValue,
                        GasSensorMeasurement_id = i.data.sensors.Length > 3 ? i.data.sensors[3].measurement_id : 0,
                        GasSensorUuid           = i.data.sensors.Length > 4 ? i.data.sensors[3].uuid : null,
                        GasSensorValue          = i.data.sensors.Length > 4 ? i.data.sensors[3].value : 0,
                        GasSensorRawValue       = i.data.sensors.Length > 4 ? i.data.sensors[3].raw_value : 0,
                        GasSensorPrevValue      = i.data.sensors.Length > 4 ? i.data.sensors[3].prev_value : 0,
                        GasSensorPrevRawValue   = i.data.sensors.Length > 4 ? i.data.sensors[3].prev_raw_value : 0,


                        //CO2 gas sensor
                        CoSensorsId            = i.data.sensors.Length > 5 ? i.data.sensors[4].id : -1,
                        CoSensortAncestry      = i.data.sensors.Length > 5 ? i.data.sensors[4].ancestry : null,
                        CoSensorName           = i.data.sensors.Length > 5 ? i.data.sensors[4].name : null,
                        CoSensorDescription    = i.data.sensors.Length > 5 ? i.data.sensors[4].description : null,
                        CoSensorUnit           = i.data.sensors.Length > 5 ? i.data.sensors[4].unit : -1,
                        CoSensorCreatedAt      = i.data.sensors.Length > 5 ? i.data.sensors[4].created_at : DateTime.MinValue,
                        CoSensorUpdated_at     = i.data.sensors.Length > 5 ? i.data.sensors[4].updated_at : DateTime.MinValue,
                        CoSensorMeasurement_id = i.data.sensors.Length > 5 ? i.data.sensors[4].measurement_id : -1,
                        CoSensorUuid           = i.data.sensors.Length > 5 ? i.data.sensors[4].uuid : null,
                        CoSensorValue          = i.data.sensors.Length > 5 ? i.data.sensors[4].value : -1,
                        CoSensorRawValue       = i.data.sensors.Length > 5 ? i.data.sensors[4].raw_value : -1,
                        CoSensorPrevValue      = i.data.sensors.Length > 5 ? i.data.sensors[4].prev_value : -1,
                        CoSensorPrevRawValue   = i.data.sensors.Length > 5 ? i.data.sensors[4].prev_raw_value : -1,


                        //Network sensor


                        NetSensorsId            = i.data.sensors.Length > 6 ? i.data.sensors[5].id : 0,
                        NetSensortAncestry      = i.data.sensors.Length > 6 ? i.data.sensors[5].ancestry : null,
                        NetSensorName           = i.data.sensors.Length > 6 ? i.data.sensors[5].name : null,
                        NetSensorDescription    = i.data.sensors.Length > 6 ? i.data.sensors[5].description : null,
                        NetSensorUnit           = i.data.sensors.Length > 6 ? i.data.sensors[5].unit : 0,
                        NetSensorCreatedAt      = i.data.sensors.Length > 6 ? i.data.sensors[5].created_at : DateTime.MinValue,
                        NetSensorUpdated_at     = i.data.sensors.Length > 6 ? i.data.sensors[5].updated_at : DateTime.MinValue,
                        NetSensorMeasurement_id = i.data.sensors.Length > 6 ? i.data.sensors[5].measurement_id : 0,
                        NetSensorUuid           = i.data.sensors.Length > 6 ? i.data.sensors[5].uuid : null,
                        NetSensorValue          = i.data.sensors.Length > null ? i.data.sensors[5].value : 0,
                        NetSensorRawValue       = i.data.sensors.Length > null ? i.data.sensors[5].raw_value : 0,
                        NetSensorPrevValue      = i.data.sensors.Length > null ? i.data.sensors[5].prev_value : 0,
                        NetSensorPrevRawValue   = i.data.sensors.Length > null ? i.data.sensors[5].prev_raw_value : 0,



                        //decibel sensor  db

                        DBSensorsId            = i.data.sensors.Length > 7 ? i.data.sensors[6].id : 0,
                        DBSensortAncestry      = i.data.sensors.Length > 7 ? i.data.sensors[6].ancestry : null,
                        DbSensorName           = i.data.sensors.Length > 7 ? i.data.sensors[6].name : null,
                        DbSensorDescription    = i.data.sensors.Length > 7 ? i.data.sensors[6].description : null,
                        DbSensorUnit           = i.data.sensors.Length > 7 ? i.data.sensors[6].unit : 0,
                        DbSensorCreatedAt      = i.data.sensors.Length > 7 ? i.data.sensors[6].created_at : DateTime.MinValue,
                        DbSensorUpdated_at     = i.data.sensors.Length > 7 ? i.data.sensors[6].updated_at : DateTime.MinValue,
                        DbSensorMeasurement_id = i.data.sensors.Length > 7 ? i.data.sensors[6].measurement_id : 0,
                        DbSensorUuid           = i.data.sensors.Length > 7 ? i.data.sensors[6].uuid : null,
                        DbSensorValue          = i.data.sensors.Length > 7 ? i.data.sensors[6].value : 0,
                        DbSensorRawValue       = i.data.sensors.Length > 7 ? i.data.sensors[6].raw_value : 0,
                        DbSensorPrevValue      = i.data.sensors.Length > 7 ? i.data.sensors[6].prev_value : 0,
                        DbSensorPrevRawValue   = i.data.sensors.Length > 7 ? i.data.sensors[6].prev_raw_value : 0,

                        // LDR Analog Light Sensor

                        LSensorsId            = i.data.sensors.Length > 8 ? i.data.sensors[7].id : 0,
                        LSensortAncestry      = i.data.sensors.Length > 8 ? i.data.sensors[7].ancestry : null,
                        LSensorName           = i.data.sensors.Length > 8 ? i.data.sensors[7].name : null,
                        LSensorDescription    = i.data.sensors.Length > 8 ? i.data.sensors[7].description : null,
                        LSensorUnit           = i.data.sensors.Length > 8 ? i.data.sensors[7].unit : 0,
                        LSensorCreatedAt      = i.data.sensors.Length > 8 ? i.data.sensors[7].created_at : DateTime.MinValue,
                        LSensorUpdated_at     = i.data.sensors.Length > 8 ? i.data.sensors[7].updated_at : DateTime.MinValue,
                        LSensorMeasurement_id = i.data.sensors.Length > 8 ? i.data.sensors[7].measurement_id : 0,
                        LSensorUuid           = i.data.sensors.Length > 8 ? i.data.sensors[7].uuid : null,
                        LSensorValue          = i.data.sensors.Length > 8 ? i.data.sensors[7].value : 0,
                        LSensorRawValue       = i.data.sensors.Length > 8 ? i.data.sensors[7].raw_value : 0,
                        LSensorPrevValue      = i.data.sensors.Length > 8 ? i.data.sensors[7].prev_value : 0,
                        LSensorPrevRawValue   = i.data.sensors.Length > 8 ? i.data.sensors[7].prev_raw_value : 0,

                        //solar panel
                        SolSensorsId            = i.data.sensors.Length > 9 ? i.data.sensors[8].id : 0,
                        SolSensortAncestry      = i.data.sensors.Length > 9 ? i.data.sensors[8].ancestry : null,
                        SolSensorName           = i.data.sensors.Length > 9 ? i.data.sensors[8].name : null,
                        SolSensorDescription    = i.data.sensors.Length > 9 ? i.data.sensors[8].description : null,
                        SolSensorUnit           = i.data.sensors.Length > 9 ? i.data.sensors[8].unit : 0,
                        SolSensorCreatedAt      = i.data.sensors.Length > 9 ? i.data.sensors[8].created_at : DateTime.MinValue,
                        SolSensorUpdated_at     = i.data.sensors.Length > 9 ? i.data.sensors[8].updated_at : DateTime.MinValue,
                        SolSensorMeasurement_id = i.data.sensors.Length > 9 ? i.data.sensors[8].measurement_id : 0,
                        SolSensorUuid           = i.data.sensors.Length > 9 ? i.data.sensors[8].uuid : null,
                        SolSensorValue          = i.data.sensors.Length > 9 ? i.data.sensors[8].value : 0,
                        SolSensorRawValue       = i.data.sensors.Length > 9 ? i.data.sensors[8].raw_value : 0,
                        SolSensorPrevValue      = i.data.sensors.Length > 9 ? i.data.sensors[8].prev_value : 0,
                        SolSensorPrevRawValue   = i.data.sensors.Length > 9 ? i.data.sensors[8].prev_raw_value : 0,

                        //kit info
                        KitId          = i.kit != null ? i.kit.id : 0,
                        KitUuid        = i.kit != null ? i.kit.uuid : null,
                        KitSlug        = i.kit != null ? i.kit.slug : null,
                        KitName        = i.kit != null ? i.kit.name : null,
                        KitDescription = i.kit != null ? i.kit.description : null,
                        KitCreatedAt   = i.kit != null ? i.kit.created_at : null,
                        KitUpdatedAt   = i.kit != null ? i.kit.updated_at : null
                    }));
                }
            }
        }
예제 #17
0
파일: Form1.cs 프로젝트: Gluups/Tension
        private void btnOK_Click(object sender, EventArgs e)
        {
            btnOK.Focus();
            SaveFileDialog sfd = new SaveFileDialog();

            sfd.InitialDirectory = Application.StartupPath;
            if (sfd.ShowDialog() == DialogResult.OK)
            {
                using (ChoETL.ChoCSVWriter <UnJourTransfert> writer = new ChoCSVWriter <UnJourTransfert>(sfd.FileName))
                {
                    for (int i = 0; i < LJ.Count; i++)
                    {
                        hScrollBar1.Value = i + 1;
                        hScrollBar1_Scroll(hScrollBar1, new ScrollEventArgs(new ScrollEventType(), 0));
                        UnJour          unJour = (UnJour)LJ[i];
                        UnJourTransfert ujt    = new UnJourTransfert();
                        unJour.annee = this.dateTimePicker1.Value.Year;
                        unJour.mois  = this.dateTimePicker1.Value.Month;
                        unJour.jour  = this.dateTimePicker1.Value.Day;
                        ujt.LaDate   = DateTime.Parse(this.dateTimePicker1.Text).ToString("yyyy-MM-dd");
                        try
                        {
                            if (unJour.matin1.sys == 0)
                            {
                                ctlUneTension1.export();
                                string[] exp = ctlUneTension1.strValues.Split(';');
                                unJour.matin1.sys = int.Parse("0" + exp[0]);
                                unJour.matin1.dia = int.Parse("0" + exp[1]);
                                unJour.matin1.pul = int.Parse("0" + exp[2]);
                            }

                            if (unJour.matin2.sys == 0)
                            {
                                ctlUneTension2.export();
                                string[] exp = ctlUneTension2.strValues.Split(';');
                                unJour.matin2.sys = int.Parse("0" + exp[0]);
                                unJour.matin2.dia = int.Parse("0" + exp[1]);
                                unJour.matin2.pul = int.Parse("0" + exp[2]);
                            }

                            if (unJour.matin3.sys == 0)
                            {
                                ctlUneTension3.export();
                                string[] exp = ctlUneTension3.strValues.Split(';');
                                unJour.matin3.sys = int.Parse("0" + exp[0]);
                                unJour.matin3.dia = int.Parse("0" + exp[1]);
                                unJour.matin3.pul = int.Parse("0" + exp[2]);
                            }

                            if (unJour.soir1.sys == 0)
                            {
                                ctlUneTension4.export();
                                string[] exp = ctlUneTension4.strValues.Split(';');
                                unJour.soir1.sys = int.Parse("0" + exp[0]);
                                unJour.soir1.dia = int.Parse("0" + exp[1]);
                                unJour.soir1.pul = int.Parse("0" + exp[2]);
                            }

                            if (unJour.soir2.sys == 0)
                            {
                                ctlUneTension5.export();
                                string[] exp = ctlUneTension5.strValues.Split(';');
                                unJour.soir2.sys = int.Parse("0" + exp[0]);
                                unJour.soir2.dia = int.Parse("0" + exp[1]);
                                unJour.soir2.pul = int.Parse("0" + exp[2]);
                            }

                            if (unJour.soir3.sys == 0)
                            {
                                ctlUneTension6.export();
                                string[] exp = ctlUneTension6.strValues.Split(';');
                                unJour.soir3.sys = int.Parse("0" + exp[0]);
                                unJour.soir3.dia = int.Parse("0" + exp[1]);
                                unJour.soir3.pul = int.Parse("0" + exp[2]);
                            }

                            ujt.sys1 = unJour.matin1.sys;
                            ujt.dia1 = unJour.matin1.dia;
                            ujt.pul1 = unJour.matin1.pul;
                            ujt.moy1 = unJour.matin1.pul;

                            ujt.sys2 = unJour.matin2.sys;
                            ujt.dia2 = unJour.matin2.dia;
                            ujt.pul2 = unJour.matin2.pul;
                            ujt.moy2 = unJour.matin2.pul;

                            ujt.sys3 = unJour.matin3.sys;
                            ujt.dia3 = unJour.matin3.dia;
                            ujt.pul3 = unJour.matin3.pul;
                            ujt.moy3 = unJour.matin3.pul;

                            ujt.sys4 = unJour.soir1.sys;
                            ujt.dia4 = unJour.soir1.dia;
                            ujt.pul4 = unJour.soir1.pul;
                            ujt.moy4 = unJour.soir1.pul;

                            ujt.sys5 = unJour.soir2.sys;
                            ujt.dia5 = unJour.soir2.dia;
                            ujt.pul5 = unJour.soir2.pul;
                            ujt.moy5 = unJour.soir2.pul;

                            ujt.sys6 = unJour.soir3.sys;
                            ujt.dia6 = unJour.soir3.dia;
                            ujt.pul6 = unJour.soir3.pul;
                            ujt.moy6 = unJour.soir3.pul;
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show(ex.Message);
                        }
                        try
                        {
                            writer.Write(ujt);
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show(ex.Message);
                        }
                    }
                }
            }
        }
예제 #18
0
        static void Main()
        {
            try
            {
                // Create a new RestClient, pull in the URI value from an environment variable
                var client = new RestClient(Environment.GetEnvironmentVariable("SERVICE_URI", EnvironmentVariableTarget.User))
                {
                    Timeout = -1
                };
                client.UseNewtonsoftJson();
                // Create a new RestRequest, and specify it as a POST
                var request = new RestRequest(Method.POST);
                request.AddHeader("Accept", "application/json");

                request.AddHeader("apikey", Environment.GetEnvironmentVariable("STATE_API_KEY", EnvironmentVariableTarget.User)); // Set the API key in the header value

                request.AddHeader("Content-Type", "application/json");                                                            // Set the Content-Type appropriately

                String payload = File.ReadAllText(@"../../../../examples/input_samples/json_format/example1.json");               // Read the json query from the example1.json file - update this path if needed.

                request.AddParameter("application/json", payload, ParameterType.RequestBody);
                request.OnBeforeDeserialization = resp => { resp.ContentType = "application/json"; };
                IRestResponse response = client.Execute(request);

                // Check that our response was valid.
                if (response.StatusCode == System.Net.HttpStatusCode.OK)
                {
                    // By default, the returned object contains the json in the 'result' value, we need to extract it.
                    var jsonOutput = JObject.Parse(response.Content)["result"].ToString();


                    // Once you have the data, you can output it in many formats, as listed below:

                    // Write the output directly to the console (mostly for debugging)
                    Console.WriteLine(jsonOutput);
                    Console.ReadLine(); //Pause the output terminal (hack)

                    // Write the raw json out to a file "output.json"
                    File.WriteAllText(@"output.json", jsonOutput);

                    // Write the output to a csv file "output.csv" - an easy way is to use a 3rd party libary ChoETL
                    // https://github.com/Cinchoo/ChoETL
                    // There are ways to do it with much fewer dependencies, like converting Datatable to CSV, but
                    // JSON.NET is still the best library for reading/serializing json in .NET (which ChoETL uses).

                    System.Text.StringBuilder json = new System.Text.StringBuilder(jsonOutput);
                    using (var r = new ChoJSONReader(json))
                    {
                        using (var w = new ChoCSVWriter(@"output.csv").WithFirstLineHeader())
                        {
                            w.Write(r);
                        }
                    }
                }
                else
                {
                    Console.WriteLine(String.Format("{0} : {1}", response.StatusCode, response.StatusDescription));
                    Console.ReadLine();
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(String.Format("Something went wrong: {0}", ex.Message));
                Console.ReadLine();
            }
        }
예제 #19
0
        static void Main(string[] args)
        {
            ChoETLFrxBootstrap.TraceLevel = System.Diagnostics.TraceLevel.Off;
            QuotesIssue();
            return;

            WriteSpecificColumns();
            return;

            //DictionaryTest();
            //return;

            //ListTest();
            //return;
            //int z = 44;
            //Console.WriteLine(String.Format("{0:000}", z));
            //return;

            Sample3();
            return;

            InheritanceTest();
            return;

            NestedObjects();
            return;

            CSVWithQuotes();
            return;

            ChoCSVRecordConfiguration config = new ChoCSVRecordConfiguration();

            config.FileHeaderConfiguration.HasHeaderRecord = true;
            config.CSVRecordFieldConfigurations.Add(new ChoCSVRecordFieldConfiguration("Id", 1)
            {
                FieldName = " Id ", QuoteField = true
            });
            config.CSVRecordFieldConfigurations.Add(new ChoCSVRecordFieldConfiguration("Name", 2));

            List <ExpandoObject> objs = new List <ExpandoObject>();
            dynamic rec1 = new ExpandoObject();

            rec1.Id   = 1.1;
            rec1.Name = "Mark";
            objs.Add(rec1);

            dynamic rec2 = new ExpandoObject();

            rec2.Id   = 2;
            rec2.Name = "Tom";
            objs.Add(rec2);

            NumberFormatInfo nfi = new NumberFormatInfo();

            nfi.NumberDecimalSeparator = "~";

            using (var parser = new ChoCSVWriter("Emp.csv", config)
                                .WithField("Id", fieldType: typeof(double), valueConverter: (v) => ((double)v).ToString(nfi))
                                .WithField("Name")
                                .Setup(w => w.FileHeaderWrite += (o, e) =>
            {
                e.HeaderText = "C1, C2";
            }
                                       ))
            {
                parser.Write(objs);
            }

            //ToTextTest();
        }
예제 #20
0
        private void J2C_Convert_Click(object sender, EventArgs e)
        {
            J2C_Button_Save.Enabled           = false;
            J2C_Button_Convert.Enabled        = false;
            J2C_SaveToolStripMenuItem.Enabled = false;

            file_list.Clear();
            data_list.Clear();
            json_list.Clear();
            csv_list.Clear();
            json_data.Clear();
            csv_cols_data.Clear();
            col_list.Clear();
            J2C_DataGridView.Rows.Clear();
            J2C_DataGridView.Columns.Clear();

            foreach (String item in J2C_ListBox_Folder.Items)
            {
                foreach (String file in Directory.GetFiles(item, "*.json", SearchOption.AllDirectories))
                {
                    file_list.Add(file);
                }
            }

            foreach (String file in file_list)
            {
                try
                {
                    string jsonString = File.ReadAllText(file);

                    this.json_list.Add(file, new JsonTextReader(new StringReader(jsonString)));
                }
                catch (Exception ex)
                {
                    J2C_ListBox_Logs.Items.Add(file);
                    J2C_ListBox_Logs.Items.Add(ex.StackTrace);
                    J2C_ListBox_Logs.Items.Add(ex.Message);
                }
            }

            List <string> line = new List <string>();

            foreach (String fullpath in json_list.Keys)
            {
                try
                {
                    JsonTextReader obj     = json_list[fullpath];
                    StringBuilder  csvData = new StringBuilder();

                    using (var r = new ChoJSONReader().Load(obj).WithJSONPath(J2C_TextBox_JPath.Text))
                    {
                        using (var w = new ChoCSVWriter(csvData).WithFirstLineHeader())
                        {
                            w.Write(r);
                        }
                    }

                    csv_list.Add(fullpath, csvData);
                    line.Add(csvData.ToString());
                }
                catch (Exception ex)
                {
                    J2C_ListBox_Logs.Items.Add(fullpath);
                    J2C_ListBox_Logs.Items.Add(ex.StackTrace);
                    J2C_ListBox_Logs.Items.Add(ex.Message);
                }
            }

            foreach (String fullpath in csv_list.Keys)
            {
                StringBuilder csvData = csv_list[fullpath];
                string        col1    = csvData.ToString().Split("\n").ToArray()[0];
                string        col2    = NumReplace(col1, 200);
                col2 = col2.Replace("\n", "");
                csv_cols_data.Add(fullpath, new KeyValuePair <string, string>(col1, col2));

                foreach (string key in col2.Split(","))
                {
                    string txtout = RemoveChars(key);
                    if (!col_list.Contains(txtout))
                    {
                        col_list.Add(txtout);
                    }
                }
            }

            foreach (string key in col_list)
            {
                try
                {
                    DataGridViewColumn DGVC = new DataGridViewColumn();
                    DGVC.Name             = key;
                    DGVC.HeaderText       = key;
                    DGVC.HeaderCell.Value = key;
                    DGVC.CellTemplate     = new DataGridViewTextBoxCell();
                    J2C_DataGridView.Columns.Add(DGVC);
                }
                catch (Exception ex2)
                {
                    J2C_ListBox_Logs.Items.Add(key);
                    J2C_ListBox_Logs.Items.Add(ex2.Message);
                }
            }

            foreach (String fullpath in csv_list.Keys)
            {
                J2C_DataGridView.Rows.Add();
            }

            new Thread(() =>
            {
                Thread.CurrentThread.IsBackground = true;

                int i = 0;

                foreach (String fullpath in csv_list.Keys)
                {
                    try
                    {
                        DataGridViewRow DGVC = new DataGridViewRow();

                        string csv = csv_list[fullpath].ToString();
                        KeyValuePair <string, string> cols = csv_cols_data[fullpath];

                        string[] cols1 = cols.Key.Split(",");
                        string[] cols2 = cols.Value.Split(",");

                        int colindex = 0;
                        foreach (string colx in cols2)
                        {
                            string colnameorg = cols1[colindex];
                            string colname    = RemoveChars(cols2[colindex]);
                            string colvalue   = RemoveChars(csv_list[fullpath].ToString().Split("\n")[1].Split(",")[colindex]);

                            J2C_DataGridView.Invoke((Action) delegate
                            {
                                string valx = J2C_DataGridView.Rows[i].Cells[colname].Value == null ? string.Empty : J2C_DataGridView.Rows[i].Cells[colname].Value.ToString();

                                if (valx.IsEmpty())
                                {
                                    J2C_DataGridView.Rows[i].Cells[colname].Value = colvalue;

                                    J2C_DataGridView.Rows[i].Cells[colname].ToolTipText = colnameorg + "<>" + colvalue;
                                }
                                else
                                {
                                    J2C_DataGridView.Rows[i].Cells[colname].Value       += J2C_TextBox_JSep.Text + colvalue;
                                    J2C_DataGridView.Rows[i].Cells[colname].ToolTipText += J2C_TextBox_JSep.Text + colnameorg + "<>" + colvalue;
                                }
                            });

                            colindex++;
                        }

                        i++;
                    }
                    catch (Exception ex)
                    {
                        J2C_ListBox_Logs.Items.Add("DG: " + fullpath);
                        J2C_ListBox_Logs.Items.Add(ex.StackTrace);
                        J2C_ListBox_Logs.Items.Add(ex.Message);
                    }
                }
                J2C_Button_Convert.Invoke((Action) delegate
                {
                    J2C_Button_Convert.Enabled = true;
                });

                J2C_Button_Save.Invoke((Action) delegate
                {
                    J2C_Button_Save.Enabled = true;
                });
            }).Start();
        }
예제 #21
0
파일: Program.cs 프로젝트: tablesmit/ChoETL
        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());
                            }
                        }
        }
예제 #22
0
        static void Sample4()
        {
            using (var jr = new ChoJSONReader("sample4.json").Configure(c => c.UseJSONSerialization = true))
            {
                using (var xw = new ChoCSVWriter("sample4.csv").WithFirstLineHeader())
                {
                    foreach (JObject jItem in jr)
                    {
                        dynamic item        = jItem;
                        var     identifiers = ChoEnumerable.AsEnumerable <JObject>(jItem).Select(e => ((IList <JToken>)((dynamic)e).identifiers).Select(i =>
                                                                                                                                                        new
                        {
                            identityText     = i["identityText"].ToString(),
                            identityTypeCode = i["identityTypeCode"].ToString()
                        })).SelectMany(x => x);

                        var members = ChoEnumerable.AsEnumerable <JObject>(jItem).Select(e => ((IList <JToken>)((dynamic)e).members).Select(m => ((IList <JToken>)((dynamic)m).identifiers).Select(i =>
                                                                                                                                                                                                   new
                        {
                            dob              = m["dob"].ToString(),
                            firstName        = m["firstName"].ToString(),
                            gender           = m["gender"].ToString(),
                            identityText     = i["identityText"].ToString(),
                            identityTypeCode = i["identityTypeCode"].ToString(),
                            lastname         = m["lastName"].ToString(),
                            memberId         = m["memberId"].ToString(),
                            optOutIndicator  = m["optOutIndicator"].ToString(),
                            relationship     = m["relationship"].ToString()
                        }))).SelectMany(x => x).SelectMany(y => y);

                        var comb = members.ZipEx(identifiers, (m, i) =>
                        {
                            if (i == null)
                            {
                                return new
                                {
                                    item.ccId,
                                    item.hId,
                                    identifiers_identityText     = String.Empty,
                                    identifiers_identityTypeCode = String.Empty,
                                    members_dob       = m.dob,
                                    members_firstName = m.firstName,
                                    members_gender    = m.gender,
                                    members_identifiers_identityText = m.identityText,
                                    members_identityTypeCode         = m.identityTypeCode,
                                    members_lastname       = m.lastname,
                                    members_memberid       = m.memberId,
                                    member_optOutIndicator = m.optOutIndicator,
                                    member_relationship    = m.relationship,
                                    SubscriberFirstName    = item.subscriberFirstame,
                                    SubscriberLastName     = item.subscriberLastName,
                                }
                            }
                            ;
                            else
                            {
                                return new
                                {
                                    item.ccId,
                                    item.hId,
                                    identifiers_identityText     = i.identityText,
                                    identifiers_identityTypeCode = i.identityTypeCode,
                                    members_dob       = m.dob,
                                    members_firstName = m.firstName,
                                    members_gender    = m.gender,
                                    members_identifiers_identityText = m.identityText,
                                    members_identityTypeCode         = m.identityTypeCode,
                                    members_lastname       = m.lastname,
                                    members_memberid       = m.memberId,
                                    member_optOutIndicator = m.optOutIndicator,
                                    member_relationship    = m.relationship,
                                    SubscriberFirstName    = item.subscriberFirstame,
                                    SubscriberLastName     = item.subscriberLastName,
                                }
                            };
                        });
                        xw.Write(comb);
                    }
                }
            }

            //foreach (var e in jr.Select(i => new[] { i.ccId.ToString(), i.hId.ToString() }
            //.Concat(((IList<JToken>)i.identifiers).Select(jt => jt["identityText"].ToString()))
            //.Concat(((IList<JToken>)i.members).Select(jt => jt["dob"].ToString()))
            //)
            //)
            //    xw.Write(e.ToList().ToExpandoObject());

            //foreach (var e in jr.Select(i => new { i.ccId, i.hId, identityText = ((IList<JToken>)i.identifiers).Select(x => x["identityText"]) }))
            //{

            //}
        }
예제 #23
0
        static void Main(string[] args)
        {
            var songs           = new List <SongDTO>();
            var tunes           = new List <TuneDTO>();
            var meters          = new List <MeterDTO>();
            var parts           = new List <BookPartDTO>();
            var sections        = new List <BookSectionDTO>();
            var songSection     = new List <SongSectionDTO>();
            var songSectionLine = new List <SongSectionLineDTO>();

            XmlSerializer serializer = new XmlSerializer(typeof(object), new XmlRootAttribute("html"));
            var           nodes      = (XmlNode[])serializer.Deserialize(new XmlTextReader(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "raw2.xml")));

            var lastSectionId = "";
            var lastPartId    = "";
            var lastSong      = new SongDTO
            {
                Number = 0
            };

            for (int i = 0; i < nodes.Length; i++)
            {
                if (nodes[i].Name == "h1")
                {
                    //we're at a header
                    var bookPart = new BookPartDTO
                    {
                        Id   = nodes[i].InnerText.Underscore(),
                        Name = nodes[i].InnerText.Humanize(LetterCasing.Title)
                    };

                    parts.Add(bookPart);

                    lastPartId = bookPart.Id;
                }
                else if (nodes[i].Name == "h2" && nodes[i].NextSibling.Name == "h2")
                {
                    var children = nodes[i].ChildNodes;
                    //were at a section title
                    var bookSection = new BookSectionDTO
                    {
                        Id         = nodes[i].InnerText.Underscore(),
                        BookPartId = lastPartId,
                        Name       = nodes[i].InnerText.Humanize(LetterCasing.Title)
                    };

                    sections.Add(bookSection);

                    lastSectionId = bookSection.Id;
                }
                else if (nodes[i].Name == "h2" && nodes[i].NextSibling.Name == "p")
                {
                    var rawMeterName = nodes[i].ChildNodes[1].InnerText;
                    var meter        = meters.FirstOrDefault(m => m.Name == rawMeterName);

                    if (meter == null)
                    {
                        var newMeter = new MeterDTO
                        {
                            Id   = rawMeterName,
                            Name = rawMeterName
                        };

                        meters.Add(newMeter);
                        meter = newMeter;
                    }

                    var rawTuneName = nodes[i].ChildNodes[1].InnerText.Replace("[", "").Replace(".", "");
                    var tune        = tunes.FirstOrDefault(t => t.Name == rawTuneName);

                    if (tune == null)
                    {
                        var newTune = new TuneDTO
                        {
                            Id   = rawTuneName,
                            Name = rawTuneName
                        };

                        tunes.Add(newTune);
                        tune = newTune;
                    }

                    var song = new SongDTO
                    {
                        Number        = lastSong.Number + 1,
                        Id            = (lastSong.Number + 1).ToString(),
                        BookSectionId = lastSectionId,
                        MeterId       = meter.Id,
                        TuneId        = tune.Id
                    };

                    songs.Add(song);
                    lastSong = song;
                }
                else if (nodes[i].Name == "p")
                {
                    //song body
                    var body         = nodes[i].InnerText.Replace("<span>", "").Replace("</span>", "");
                    var songSections = body.Split("\r\n    \r\n", StringSplitOptions.None).ToList();

                    for (int ii = 0; ii < songSections.Count; ii++)
                    {
                        if (songSections[ii].Count() <= 1)
                        {
                            break;
                        }

                        var section = new SongSectionDTO
                        {
                            Id     = lastSong.Id + "." + ii,
                            SongId = lastSong.Id,
                            Order  = ii
                        };

                        songSection.Add(section);

                        var currentSongLines = songSections[ii].Split("\n").ToList();

                        //remove spacing
                        currentSongLines.RemoveAll(r => r == "\r");
                        for (int b = 0; b < currentSongLines.Count; b++)
                        {
                            currentSongLines[b] = currentSongLines[b].Replace("    ", "").Replace("\r", "");
                        }

                        for (int iii = 0; iii < currentSongLines.Count; iii++)
                        {
                            var line = currentSongLines[iii];

                            if (line.Trim() == "")
                            {
                                continue;
                            }

                            songSectionLine.Add(new SongSectionLineDTO
                            {
                                Id            = lastSong.Id + "." + section.Order + "." + iii.ToString(),
                                Order         = iii,
                                SongSectionId = section.Id,
                                Line          = line
                            });
                        }
                    }
                }
            }

            using (var writer = new ChoCSVWriter <SongDTO>(@"C:\output\songs.csv"))
            {
                writer.Write(songs);
            }

            using (var writer = new ChoCSVWriter <TuneDTO>(@"C:\output\tunes.csv"))
            {
                writer.Write(tunes);
            }

            using (var writer = new ChoCSVWriter <MeterDTO>(@"C:\output\meters.csv"))
            {
                writer.Write(meters);
            }

            using (var writer = new ChoCSVWriter <BookPartDTO>(@"C:\output\book_parts.csv"))
            {
                writer.Write(parts);
            }

            using (var writer = new ChoCSVWriter <BookSectionDTO>(@"C:\output\book_sections.csv"))
            {
                writer.Write(sections);
            }

            using (var writer = new ChoCSVWriter <SongSectionDTO>(@"C:\output\song_sections.csv"))
            {
                writer.Write(songSection);
            }

            using (var writer = new ChoCSVWriter <SongSectionLineDTO>(@"C:\output\song_section_lines.csv"))
            {
                writer.Write(songSectionLine);
            }
        }
예제 #24
0
        public static int RunSimulation(string fileName, DateTime?fromDate, DateTime?toDate, int verbosity,
                                        bool graphic, Int32 delay, bool interactive, bool csvOutput)
        {
            Engine engine = new Engine();

            if (fileName.Length == 0)
            {
                throw new Exception("no file specified");
            }

            DateTime currentTime = engine.LoadYaml(fileName, true);

            Console.WriteLine("Loaded file in {0} ms", engine.LoadDelay.Milliseconds);
            engine.World.Time.Restart();

            DateTime reachDate = toDate ?? currentTime;

            if (fromDate != null)
            {
                if (fromDate < engine.World.Time.Start)
                {
                    throw new Exception(String.Format(
                                            "`from` date ({0:yyyy-MM-dd}) cannot be lower than the simulation start date ({1:yyyy-MM-dd})",
                                            fromDate, engine.World.Time.Start));
                }
                engine.World.Time.Current = (DateTime)fromDate;  // Yes, the current date, NOT the starting one
                verbosity = Math.Max(1, verbosity);
            }

            if (toDate != null)
            {
                if (toDate < engine.World.Time.Start)
                {
                    throw new Exception(String.Format(
                                            "`to` date ({0:yyyy-MM-dd}) cannot be lower than the simulation start date ({1:yyyy-MM-dd})",
                                            toDate, engine.World.Time.Start));
                }
            }

            if (fromDate != null && reachDate < fromDate)
            {
                throw new Exception(String.Format(
                                        "the target date ({0:yyyy-MM-dd}) cannot be lower than `from` date ({1:yyyy-MM-dd})", reachDate,
                                        fromDate));
            }

            if (verbosity <= 0) // No step details to show? Fast-forward directly to target!
            {
                engine.World.Time.Current = reachDate;
            }

            ChoCSVWriter csvWriter = null;

            if (csvOutput)
            {
                csvWriter = new ChoCSVWriter(fileName + ".csv");
                csvWriter.WithFirstLineHeader();
                string[] fields =
                    new string[2 + engine.World.Kpis.Count + (verbosity > 1
                        ? engine.World.Map.SizeX * engine.World.Map.SizeY * engine.World.Resources.Count
                        : 0)];
                int i = 0;
                fields[i++] = "#";
                fields[i++] = "Date";
                foreach (var kpi in engine.World.Kpis)
                {
                    fields[i++] = kpi.Name;
                }

                for (int y = 0; y < engine.World.Map.SizeY; y++)
                {
                    for (int x = 0; x < engine.World.Map.SizeX; x++)
                    {
                        foreach (var resource in engine.World.Resources.Values)
                        {
                            fields[i++] = "[" + x + ":" + y + "] " + resource.Name;
                        }
                    }
                }

                csvWriter.WriteHeader(fields);
            }

            IDictionary <string, int> widths = engine.World.ComputeWidths(); // Compute all the maximum widths

            (int, int)startPosition = Console.GetCursorPosition();

            //-- Main loop
            while (!engine.World.Time.Reached(reachDate) || interactive)
            {
                if (verbosity >= 1)
                {
                    PrintCurrent(engine, verbosity, graphic, startPosition, widths, csvWriter);
                }

                if (interactive)
                {
                    ConsoleKeyInfo cki = Console.ReadKey(true);
                    if ((cki.Key == ConsoleKey.LeftArrow) || (cki.Key == ConsoleKey.PageUp))
                    {
                        // Go Backward
                        engine.World.Time.StepBack();
                    }
                    else if ((cki.Key == ConsoleKey.UpArrow) || (cki.Key == ConsoleKey.Home))
                    {
                        // Go to Start
                        engine.World.Time.Restart();
                    }
                    else if ((cki.Key == ConsoleKey.DownArrow) || (cki.Key == ConsoleKey.End))
                    {
                        // Go to End
                        engine.World.Time.Current = engine.World.Time.End;
                    }
                    else if ((cki.Key == ConsoleKey.T))
                    {
                        // Go to target date
                        engine.World.Time.Current = reachDate;
                    }
                    else if ((cki.Key == ConsoleKey.Escape) || (cki.Key == ConsoleKey.Q))
                    {
                        //Exit
                        break;
                    }
                    else
                    {
                        engine.World.Time.Step();
                    }
                }
                else
                {
                    if (delay > 0)
                    {
                        Thread.Sleep(delay);
                    }
                    engine.World.Time.Step();
                }
            }

            PrintCurrent(engine, verbosity, graphic, startPosition, widths, csvWriter);

            if (csvWriter != null)
            {
                csvWriter.Close();
            }
            return(0);
        }
        public async Task <List <int> > Get(string id)
        {
            string path = AppDomain.CurrentDomain.BaseDirectory + @"pauseproject.json";

            Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", path);
            database = FirestoreDb.Create("pauseproject-349dd");
            var res = await GetCollection(id);

            string filepath = AppDomain.CurrentDomain.BaseDirectory;

            using (StreamWriter file = new System.IO.StreamWriter(filepath + @"\..\..\..\Data\users.json"))
            {
                JsonSerializer serializer = new JsonSerializer();
                serializer.Serialize(file, res);
            }
            using (var r = new ChoJSONReader(filepath + @"\..\..\..\Data\users.json"))
            {
                using (var w = new ChoCSVWriter(filepath + @"\..\..\..\Data\" + "users.csv").WithFirstLineHeader())
                {
                    w.Write(r);
                }
            }
            //start machine learning algorithm
            var mlContext        = new MLContext();
            var trainingDataView = mlContext.Data.LoadFromTextFile <GameStarFSDTO>(filepath + @"..\..\..\Data\users.csv", hasHeader: true, separatorChar: ',');
            var testDataView     = mlContext.Data.LoadFromTextFile <GameStarFSDTO>(filepath + @"..\..\..\Data\usersTest.csv", hasHeader: true, separatorChar: ',');

            var options = new MatrixFactorizationTrainer.Options
            {
                MatrixColumnIndexColumnName = "userIDEncoded",
                MatrixRowIndexColumnName    = "collectionIDEncoded",
                LabelColumnName             = "value",
                NumberOfIterations          = 20,
                ApproximationRank           = 100
            };

            var pipeline = mlContext.Transforms.Conversion.MapValueToKey(
                inputColumnName: "userID",
                outputColumnName: "userIDEncoded")
                           .Append(mlContext.Transforms.Conversion.MapValueToKey(
                                       inputColumnName: "collectionID",
                                       outputColumnName: "collectionIDEncoded")
                                   .Append(mlContext.Recommendation().Trainers.MatrixFactorization(options)));

            var model       = pipeline.Fit(trainingDataView);
            var predictions = model.Transform(testDataView);
            var metrics     = mlContext.Regression.Evaluate(predictions, labelColumnName: "value", scoreColumnName: "Score");

            var predictionEngine = mlContext.Model.CreatePredictionEngine <GameStarFSDTO, GameRatingPrediction>(model);

            //predict specific game for a user

            /*
             * var prediction = predictionEngine.Predict(
             *  new GameStarFSDTO()
             *  {
             *      userID = "Xa5hyfP8HjaX9kbsLTnckuQfuaI3",
             *      collectionID = 4200
             *  }
             * );
             * Console.WriteLine($"  Score: {prediction.Score}");
             * Console.WriteLine();
             */
            Games.LoadGameData(filepath + @"..\..\..\Data\recommendation-games.csv");
            //Console.WriteLine(Games._games.Value.Count);

            var top5 = (from m in Games._games.Value
                        let p = predictionEngine.Predict(
                            new GameStarFSDTO()
            {
                userID = id,
                collectionID = m.ID
            })
                                orderby p.Score descending
                                select(collectionID: m.ID, p.Score)).Take(10);
            List <int> gamesRecommended = new List <int>();

            foreach (var t in top5)
            {
                gamesRecommended.Add((int)Games.Get(t.collectionID)?.ID);
            }
            //Console.WriteLine($"  Score:{t.Score}\tMovie: {Games.Get(t.collectionID)?.ID}");

            return(gamesRecommended);
        }
예제 #26
0
        static void Main(string[] args)
        {
            HttpClient    client    = new HttpClient();
            var           hasValues = true;
            var           page      = 1;
            List <Device> objects   = new List <Device>();

            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            client.Timeout = new TimeSpan(0, 2, 30);
            var json = "";


            while (hasValues)
            {
                var url = string.Format("https://api.smartcitizen.me/v0/devices?page={0}", page);
                // var url = string.Format("https://airapi.airly.eu/v1/sensorsWithWios/current?southwestLat=49&southwestLong=22&northeastLat=54&northeastLong=18&apikey=TsTYb8xiNEI5c4Uc92GiFofG4DnP1W0l");
                HttpResponseMessage response = client.GetAsync(url).Result;
                if (response.IsSuccessStatusCode)
                {
                    //var json = response.Content.ReadAsStringAsync().Result;
                    Console.WriteLine("response " + page);
                    var temp = response.Content.ReadAsStringAsync().Result;
                    if (temp == "[]")
                    {
                        hasValues = false;
                        Console.WriteLine("The list is empty");
                    }
                    else if (json == "")
                    {
                        json = temp;
                    }
                    else
                    {
                        json  = json.Substring(0, json.Length - 1);
                        json += "," + temp.Substring(1, temp.Length - 1);
                    }
                }

                page++;
            }

            string csvapath = "D:\\Others\\repositories\\source\\repos\\Csharpprojects\\Csharpprojects\\Readfromafile\\MyList.json";

            File.WriteAllText(csvapath, json);



            using (var csv = new ChoCSVWriter("dev2.csv").WithFirstLineHeader())
            {
                using (var json23 = new ChoJSONReader(csvapath))
                {
                    csv.Write(json23.Select(i => new
                    {
                        // Info about device
                        Id                = i.id != null ? i.id : 0,
                        DeviceUuid        = i.uuid != null ? i.uuid : null,
                        DeviceName        = i.name != null ? i.name : null,
                        DeviceDescription = i.description != null ? i.description : null,
                        DeviceState       = i.state != null ? i.state : null,
                        SystemTags        = i.system_tags.Length > 0 ? i.system_tags[0] : null,


                        UserTags    = i.user_tags.Length > 0 ? i.user_tags[0] : null,
                        LastReading = i.last_reading_at != null ? i.last_reading_at : null,
                        AddedAt     = i.added_at != null ? i.added_at : null,
                        Updated     = i.updated_at != null ? i.updated_at : null,
                        MacAddress  = i.mac_address != null ? i.mac_address : null,

                        //Info about owner
                        OwnerID          = i.owner != null ? i.owner.id : 0,
                        OwnerUuid        = i.owner != null ? i.owner.uuid : null,
                        OwnerUserName    = i.owner != null ? i.owner.username : null,
                        OwnerAvatar      = i.owner != null ? i.owner.avatar : null,
                        OwnerUrl         = i.owner != null ? i.owner.url : null,
                        OwnerJoinDate    = i.owner != null ? i.owner.joined_at : null,
                        OwnerCity        = i.owner != null ? i.owner.location.city : null,
                        OwnerCountry     = i.owner != null ? i.owner.location.country : null,
                        OwnerCountryCode = i.owner != null ? i.owner.location.country_code : null,
                        // DeviceIds = i.owner.device_ids.Length > 0 ? i.owner.device_ids[0] : 0,



                        //Info about data

                        DataRecorded_At = i.data != null ? i.data.recorded_at : null,
                        DataAdded_At    = i.data != null ? i.data.added_at : null,
                        DataLocation    = i.data.ip != null ? i.data.location.ip : null,
                        DataExposure    = i.data != null ? i.data.location.exposure : null,
                        DataElevation   = i.data != null ? i.data.location.elevation : 0,
                        DataLatitude    = i.data != null ? i.data.location.latitude : 0,
                        DataLongitude   = i.data != null ? i.data.location.longitude : 0,
                        DataGeoLocation = i.data != null ? i.data.location.geohash : null,
                        DataCity        = i.data != null ? i.data.location.city : null,
                        DataCountryCode = i.data != null ? i.data.location.country_code : null,
                        DataCountry     = i.data != null ? i.data.location.country : null,



                        //SensorBattery
                        BSensorsId            = i.data.sensors.Length > 0 ? i.data.sensors[0].id : 0,
                        BSensortAncestry      = i.data.sensors.Length > 0 ? i.data.sensors[0].ancestry : null,
                        BSensorName           = i.data.sensors.Length > 0 ? i.data.sensors[0].name : null,
                        BSensorDescription    = i.data.sensors.Length > 0 ? i.data.sensors[0].description : null,
                        BSensorUnit           = i.data.sensors.Length > 0 ? i.data.sensors[0].unit : 0,
                        BSensorCreatedAt      = i.data.sensors.Length > 0 ? i.data.sensors[0].created_at : DateTime.MinValue,
                        BSensorUpdated_at     = i.data.sensors.Length > 0 ? i.data.sensors[0].updated_at : DateTime.MinValue,
                        BSensorMeasurement_id = i.data.sensors.Length > 0 ? i.data.sensors[0].measurement_id : 0,
                        BSensorUuid           = i.data.sensors.Length > 0 ? i.data.sensors[0].uuid : null,
                        BSensorValue          = i.data.sensors.Length > 0 ? i.data.sensors[0].value : 0,
                        BSensorRawValue       = i.data.sensors.Length > 0 ? i.data.sensors[0].raw_value : 0,
                        BSensorPrevValue      = i.data.sensors.Length > 0 ? i.data.sensors[0].prev_value : 0,
                        BSensorPrevRawValue   = i.data.sensors.Length > 0 ? i.data.sensors[0].prev_raw_value : 0,
                        //SensorHumidity

                        SensorsHId            = i.data.sensors.Length > 1 ? i.data.sensors[1].id : 0,
                        SensortHAncestry      = i.data.sensors.Length > 1 ? i.data.sensors[1].ancestry : null,
                        SensorHName           = i.data.sensors.Length > 1 ? i.data.sensors[1].name : null,
                        SensorHDescription    = i.data.sensors.Length > 1 ? i.data.sensors[1].description : null,
                        SensorHUnit           = i.data.sensors.Length > 1 ? i.data.sensors[1].unit : 0,
                        SensorHCreatedAt      = i.data.sensors.Length > 1 ? i.data.sensors[1].created_at : DateTime.MinValue,
                        SensorHUpdated_at     = i.data.sensors.Length > 1 ? i.data.sensors[1].updated_at : DateTime.MinValue,
                        SensorHMeasurement_id = i.data.sensors.Length > 1 ? i.data.sensors[1].measurement_id : 0,
                        SensorHUuid           = i.data.sensors.Length > 1 ? i.data.sensors[1].uuid : null,
                        SensorHValue          = i.data.sensors.Length > 1 ? i.data.sensors[1].value : 0,
                        SensorHRawValue       = i.data.sensors.Length > 1 ? i.data.sensors[1].raw_value : 0,
                        SensorHPrevValue      = i.data.sensors.Length > 1 ? i.data.sensors[1].prev_value : 0,
                        SensorHPrevRawValue   = i.data.sensors.Length > 1 ? i.data.sensors[1].prev_raw_value : 0,

                        //Temperature
                        TSensorsId            = i.data.sensors.Length > 2 ? i.data.sensors[2].id : 0,
                        TSensortAncestry      = i.data.sensors.Length > 2 ? i.data.sensors[2].ancestry : null,
                        TSensorName           = i.data.sensors.Length > 2 ? i.data.sensors[2].name : null,
                        TSensorDescription    = i.data.sensors.Length > 2 ? i.data.sensors[2].description : null,
                        TSensorUnit           = i.data.sensors.Length > 2 ? i.data.sensors[2].unit : 0,
                        TSensorCreatedAt      = i.data.sensors.Length > 2 ? i.data.sensors[2].created_at : DateTime.MinValue,
                        TSensorUpdated_at     = i.data.sensors.Length > 2 ? i.data.sensors[2].updated_at : DateTime.MinValue,
                        TSensorMeasurement_id = i.data.sensors.Length > 2 ? i.data.sensors[2].measurement_id : 0,
                        TSensorUuid           = i.data.sensors.Length > 2 ? i.data.sensors[2].uuid : null,
                        TSensorValue          = i.data.sensors.Length > 2 ? i.data.sensors[2].value : 0,
                        TSensorRawValue       = i.data.sensors.Length > 2 ? i.data.sensors[2].raw_value : 0,
                        TSensorPrevValue      = i.data.sensors.Length > 2 ? i.data.sensors[2].prev_value : 0,
                        TSensorPrevRawValue   = i.data.sensors.Length > 2 ? i.data.sensors[2].prev_raw_value : 0,

                        //No2 gas sensor

                        GasSensorsId            = i.data.sensors.Length > 3 ? i.data.sensors[3].id : 0,
                        GasSensortAncestry      = i.data.sensors.Length > 3 ? i.data.sensors[3].ancestry : null,
                        GasSensorName           = i.data.sensors.Length > 3 ? i.data.sensors[3].name : null,
                        GasSensorDescription    = i.data.sensors.Length > 3 ? i.data.sensors[3].description : null,
                        GasSensorUnit           = i.data.sensors.Length > 3 ? i.data.sensors[3].unit : 0,
                        GasSensorCreatedAt      = i.data.sensors.Length > 3 ? i.data.sensors[3].created_at : DateTime.MinValue,
                        GasSensorUpdated_at     = i.data.sensors.Length > 3 ? i.data.sensors[3].updated_at : DateTime.MinValue,
                        GasSensorMeasurement_id = i.data.sensors.Length > 3 ? i.data.sensors[3].measurement_id : 0,
                        GasSensorUuid           = i.data.sensors.Length > 4 ? i.data.sensors[3].uuid : null,
                        GasSensorValue          = i.data.sensors.Length > 4 ? i.data.sensors[3].value : 0,
                        GasSensorRawValue       = i.data.sensors.Length > 4 ? i.data.sensors[3].raw_value : 0,
                        GasSensorPrevValue      = i.data.sensors.Length > 4 ? i.data.sensors[3].prev_value : 0,
                        GasSensorPrevRawValue   = i.data.sensors.Length > 4 ? i.data.sensors[3].prev_raw_value : 0,


                        //CO2 gas sensor
                        CoSensorsId            = i.data.sensors.Length > 5 ? i.data.sensors[4].id : -1,
                        CoSensortAncestry      = i.data.sensors.Length > 5 ? i.data.sensors[4].ancestry : null,
                        CoSensorName           = i.data.sensors.Length > 5 ? i.data.sensors[4].name : null,
                        CoSensorDescription    = i.data.sensors.Length > 5 ? i.data.sensors[4].description : null,
                        CoSensorUnit           = i.data.sensors.Length > 5 ? i.data.sensors[4].unit : -1,
                        CoSensorCreatedAt      = i.data.sensors.Length > 5 ? i.data.sensors[4].created_at : DateTime.MinValue,
                        CoSensorUpdated_at     = i.data.sensors.Length > 5 ? i.data.sensors[4].updated_at : DateTime.MinValue,
                        CoSensorMeasurement_id = i.data.sensors.Length > 5 ? i.data.sensors[4].measurement_id : -1,
                        CoSensorUuid           = i.data.sensors.Length > 5 ? i.data.sensors[4].uuid : null,
                        CoSensorValue          = i.data.sensors.Length > 5 ? i.data.sensors[4].value : -1,
                        CoSensorRawValue       = i.data.sensors.Length > 5 ? i.data.sensors[4].raw_value : -1,
                        CoSensorPrevValue      = i.data.sensors.Length > 5 ? i.data.sensors[4].prev_value : -1,
                        CoSensorPrevRawValue   = i.data.sensors.Length > 5 ? i.data.sensors[4].prev_raw_value : -1,


                        //Network sensor


                        NetSensorsId            = i.data.sensors.Length > 6 ? i.data.sensors[5].id : 0,
                        NetSensortAncestry      = i.data.sensors.Length > 6 ? i.data.sensors[5].ancestry : null,
                        NetSensorName           = i.data.sensors.Length > 6 ? i.data.sensors[5].name : null,
                        NetSensorDescription    = i.data.sensors.Length > 6 ? i.data.sensors[5].description : null,
                        NetSensorUnit           = i.data.sensors.Length > 6 ? i.data.sensors[5].unit : 0,
                        NetSensorCreatedAt      = i.data.sensors.Length > 6 ? i.data.sensors[5].created_at : DateTime.MinValue,
                        NetSensorUpdated_at     = i.data.sensors.Length > 6 ? i.data.sensors[5].updated_at : DateTime.MinValue,
                        NetSensorMeasurement_id = i.data.sensors.Length > 6 ? i.data.sensors[5].measurement_id : 0,
                        NetSensorUuid           = i.data.sensors.Length > 6 ? i.data.sensors[5].uuid : null,
                        NetSensorValue          = i.data.sensors.Length > null ? i.data.sensors[5].value : 0,
                        NetSensorRawValue       = i.data.sensors.Length > null ? i.data.sensors[5].raw_value : 0,
                        NetSensorPrevValue      = i.data.sensors.Length > null ? i.data.sensors[5].prev_value : 0,
                        NetSensorPrevRawValue   = i.data.sensors.Length > null ? i.data.sensors[5].prev_raw_value : 0,



                        //decibel sensor  db

                        DBSensorsId            = i.data.sensors.Length > 7 ? i.data.sensors[6].id : 0,
                        DBSensortAncestry      = i.data.sensors.Length > 7 ? i.data.sensors[6].ancestry : null,
                        DbSensorName           = i.data.sensors.Length > 7 ? i.data.sensors[6].name : null,
                        DbSensorDescription    = i.data.sensors.Length > 7 ? i.data.sensors[6].description : null,
                        DbSensorUnit           = i.data.sensors.Length > 7 ? i.data.sensors[6].unit : 0,
                        DbSensorCreatedAt      = i.data.sensors.Length > 7 ? i.data.sensors[6].created_at : DateTime.MinValue,
                        DbSensorUpdated_at     = i.data.sensors.Length > 7 ? i.data.sensors[6].updated_at : DateTime.MinValue,
                        DbSensorMeasurement_id = i.data.sensors.Length > 7 ? i.data.sensors[6].measurement_id : 0,
                        DbSensorUuid           = i.data.sensors.Length > 7 ? i.data.sensors[6].uuid : null,
                        DbSensorValue          = i.data.sensors.Length > 7 ? i.data.sensors[6].value : 0,
                        DbSensorRawValue       = i.data.sensors.Length > 7 ? i.data.sensors[6].raw_value : 0,
                        DbSensorPrevValue      = i.data.sensors.Length > 7 ? i.data.sensors[6].prev_value : 0,
                        DbSensorPrevRawValue   = i.data.sensors.Length > 7 ? i.data.sensors[6].prev_raw_value : 0,

                        // LDR Analog Light Sensor

                        LSensorsId            = i.data.sensors.Length > 8 ? i.data.sensors[7].id : 0,
                        LSensortAncestry      = i.data.sensors.Length > 8 ? i.data.sensors[7].ancestry : null,
                        LSensorName           = i.data.sensors.Length > 8 ? i.data.sensors[7].name : null,
                        LSensorDescription    = i.data.sensors.Length > 8 ? i.data.sensors[7].description : null,
                        LSensorUnit           = i.data.sensors.Length > 8 ? i.data.sensors[7].unit : 0,
                        LSensorCreatedAt      = i.data.sensors.Length > 8 ? i.data.sensors[7].created_at : DateTime.MinValue,
                        LSensorUpdated_at     = i.data.sensors.Length > 8 ? i.data.sensors[7].updated_at : DateTime.MinValue,
                        LSensorMeasurement_id = i.data.sensors.Length > 8 ? i.data.sensors[7].measurement_id : 0,
                        LSensorUuid           = i.data.sensors.Length > 8 ? i.data.sensors[7].uuid : null,
                        LSensorValue          = i.data.sensors.Length > 8 ? i.data.sensors[7].value : 0,
                        LSensorRawValue       = i.data.sensors.Length > 8 ? i.data.sensors[7].raw_value : 0,
                        LSensorPrevValue      = i.data.sensors.Length > 8 ? i.data.sensors[7].prev_value : 0,
                        LSensorPrevRawValue   = i.data.sensors.Length > 8 ? i.data.sensors[7].prev_raw_value : 0,

                        //solar panel
                        SolSensorsId            = i.data.sensors.Length > 9 ? i.data.sensors[8].id : 0,
                        SolSensortAncestry      = i.data.sensors.Length > 9 ? i.data.sensors[8].ancestry : null,
                        SolSensorName           = i.data.sensors.Length > 9 ? i.data.sensors[8].name : null,
                        SolSensorDescription    = i.data.sensors.Length > 9 ? i.data.sensors[8].description : null,
                        SolSensorUnit           = i.data.sensors.Length > 9 ? i.data.sensors[8].unit : 0,
                        SolSensorCreatedAt      = i.data.sensors.Length > 9 ? i.data.sensors[8].created_at : DateTime.MinValue,
                        SolSensorUpdated_at     = i.data.sensors.Length > 9 ? i.data.sensors[8].updated_at : DateTime.MinValue,
                        SolSensorMeasurement_id = i.data.sensors.Length > 9 ? i.data.sensors[8].measurement_id : 0,
                        SolSensorUuid           = i.data.sensors.Length > 9 ? i.data.sensors[8].uuid : null,
                        SolSensorValue          = i.data.sensors.Length > 9 ? i.data.sensors[8].value : 0,
                        SolSensorRawValue       = i.data.sensors.Length > 9 ? i.data.sensors[8].raw_value : 0,
                        SolSensorPrevValue      = i.data.sensors.Length > 9 ? i.data.sensors[8].prev_value : 0,
                        SolSensorPrevRawValue   = i.data.sensors.Length > 9 ? i.data.sensors[8].prev_raw_value : 0,

                        //kit info
                        KitId          = i.kit != null ? i.kit.id : 0,
                        KitUuid        = i.kit != null ? i.kit.uuid : null,
                        KitSlug        = i.kit != null ? i.kit.slug : null,
                        KitName        = i.kit != null ? i.kit.name : null,
                        KitDescription = i.kit != null ? i.kit.description : null,
                        KitCreatedAt   = i.kit != null ? i.kit.created_at : null,
                        KitUpdatedAt   = i.kit != null ? i.kit.updated_at : null
                    }));

                    Console.WriteLine(" List of devices is ready...");
                }
            }
        }
예제 #27
0
        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            string baseDirectory = InputFileTextBox.Text;

            IEnumerable <string> filesToSolve = Enumerable.Empty <string>();

            try
            {
                filesToSolve = System.IO.Directory.EnumerateFiles(baseDirectory, "*.fits", SearchOption.AllDirectories)
                               .Union(System.IO.Directory.EnumerateFiles(baseDirectory, "*.cr2", SearchOption.AllDirectories))
                               .Union(System.IO.Directory.EnumerateFiles(baseDirectory, "*.tif", SearchOption.AllDirectories));

                /*var directory = new DirectoryInfo(baseDirectory);
                 * var masks = new[] { "*.cr2", "*.fits" };
                 * filesToSolve =  masks.SelectMany(directory.EnumerateFiles); */
            }
            catch (IOException ex)
            {
                Console.WriteLine("Error enumerating path" + ex);
            }

            string outputcsv_log = Path.Combine(baseDirectory, "gofits-4.csv");
            var    csvWriter     = new ChoCSVWriter <FitsRecord>(outputcsv_log).WithFirstLineHeader();
            object WriteLock     = new object();


            ParallelOptions options = new ParallelOptions {
                MaxDegreeOfParallelism = 8
            };

            //foreach (var imageFilePath in filesToSolve)
            Parallel.ForEach(filesToSolve, options, imageFilePath =>
            {
                try
                {
                    //string outputFilePath = GetOutputPath(imageFilePath);
                    Console.Write(imageFilePath);
                    FitsHeader fitsheader = new FitsHeader();

                    if (Path.GetExtension(imageFilePath) == "fits")
                    {
                        fitsheader = ReadFits(imageFilePath);
                    }
                    Console.Write(",Input Ra (degrees): " + fitsheader.RaDeg);
                    Console.Write(",Input Dec (degrees):" + fitsheader.DecDeg);


                    PlateSolveResult platesolveresults = new PlateSolveResult();
                    //platesolveresults = ExecuteAstap(imageFilePath);


                    Console.Write(",Output Ra:  " + platesolveresults.RaDeg);
                    Console.Write(",Output Dec:  " + platesolveresults.DecDeg);
                    Console.WriteLine(",Output orientation:  " + platesolveresults.Orientation);

                    string AnalyzeFilename = Path.Combine(Path.GetDirectoryName(imageFilePath), Path.GetFileNameWithoutExtension(imageFilePath)) + ".csv";
                    ExecuteAnalyze(imageFilePath);

                    MakeThumbNails(imageFilePath, fitsheader.NAXIS1, fitsheader.NAXIS2);

                    lock (WriteLock)
                    {
                        FitsRecord fitsrecord        = new FitsRecord();
                        fitsrecord.Filename          = imageFilePath;
                        fitsrecord.RequestedDecDeg   = fitsheader.DecDeg;
                        fitsrecord.RequestedRaDeg    = fitsheader.RaDeg;
                        fitsrecord.SolvedDecDeg      = platesolveresults.DecDeg;
                        fitsrecord.SolvedRaDeg       = platesolveresults.RaDeg;
                        fitsrecord.SolvedOrientation = platesolveresults.Orientation;


                        fitsrecord.ImageType = fitsheader.ImageType;
                        fitsrecord.NAXIS1    = fitsheader.NAXIS1;
                        fitsrecord.NAXIS2    = fitsheader.NAXIS2;
                        fitsrecord.Exposure  = fitsheader.Exposure;

                        fitsrecord.LocalDate = fitsheader.LocalDate;
                        fitsrecord.UTCDate   = fitsheader.UTCDate;

                        fitsrecord.SiteLat     = fitsheader.SiteLat;
                        fitsrecord.SiteLong    = fitsheader.SiteLong;
                        fitsrecord.PixelPitch  = fitsheader.PixelPitch;
                        fitsrecord.Gain        = fitsheader.Gain;
                        fitsrecord.SensorTempC = fitsheader.SensorTempC;
                        fitsrecord.FocalLength = fitsheader.FocalLength;
                        fitsrecord.Object      = fitsheader.Object;

                        //                        public (double Alt, double Az) ConvertAltAz(double Lat, double Long, double RaHours, double DecHours, DateTime Date)

                        (fitsrecord.AltCalculated, fitsrecord.AzCalculated) = ConvertAltAz(fitsheader.SiteLat, fitsheader.SiteLong, fitsheader.RaDeg, fitsheader.DecDeg, fitsheader.LocalDate);
                        //    (fitsheader.LocalDate;);


                        if (File.Exists(AnalyzeFilename))
                        {
                            foreach (var rec in new ChoCSVReader <AnalyzeResult>(AnalyzeFilename).WithDelimiter(";"))
                            {
                                fitsrecord.FWHM       = rec.FWHM;
                                fitsrecord.RND        = rec.RND;
                                fitsrecord.background = rec.background;
                                fitsrecord.SNR        = rec.SNR;
                                fitsrecord.StarCount  = rec.StarCount;
                                fitsrecord.Collim     = rec.Collim;
                                fitsrecord.Unknown0   = rec.Unknown0;
                            }
                        }

                        csvWriter.Write(fitsrecord);
                    }