public static Nemocnice Diff(Nemocnice fh, Nemocnice lh) { Nemocnice h = new Nemocnice(); h.datum = new DateTime((lh.datum - fh.datum).Ticks); h.zz_kod = fh.zz_kod; h.zz_nazev = fh.zz_nazev; h.kraj_nazev = fh.kraj_nazev; h.kraj_nuts_kod = fh.kraj_nuts_kod; h.luzka_aro_jip_kapacita_celkem = lh.luzka_aro_jip_kapacita_celkem - fh.luzka_aro_jip_kapacita_celkem; h.luzka_aro_jip_kapacita_volna_covid_pozitivni = lh.luzka_aro_jip_kapacita_volna_covid_pozitivni - fh.luzka_aro_jip_kapacita_volna_covid_pozitivni; h.luzka_aro_jip_kapacita_volna_covid_negativni = lh.luzka_aro_jip_kapacita_volna_covid_negativni - fh.luzka_aro_jip_kapacita_volna_covid_negativni; h.crrt_kapacita_celkem = lh.crrt_kapacita_celkem - fh.crrt_kapacita_celkem; h.crrt_kapacita_volna = lh.crrt_kapacita_volna - fh.crrt_kapacita_volna; h.ecmo_kapacita_celkem = lh.ecmo_kapacita_celkem - fh.ecmo_kapacita_celkem; h.ecmo_kapacita_volna = lh.ecmo_kapacita_volna - fh.ecmo_kapacita_volna; h.ihd_kapacita_celkem = lh.ihd_kapacita_celkem - fh.ihd_kapacita_celkem; h.ihd_kapacita_volna = lh.ihd_kapacita_volna - fh.ihd_kapacita_volna; h.reprofilizovana_kapacita_luzka_aro_jip_kapacita_celkem = lh.reprofilizovana_kapacita_luzka_aro_jip_kapacita_celkem - fh.reprofilizovana_kapacita_luzka_aro_jip_kapacita_celkem; h.reprofilizovana_kapacita_luzka_aro_jip_kapacita_planovana = lh.reprofilizovana_kapacita_luzka_aro_jip_kapacita_planovana - fh.reprofilizovana_kapacita_luzka_aro_jip_kapacita_planovana; h.reprofilizovana_kapacita_luzka_aro_jip_kapacita_volna = lh.reprofilizovana_kapacita_luzka_aro_jip_kapacita_volna - fh.reprofilizovana_kapacita_luzka_aro_jip_kapacita_volna; h.reprofilizovana_kapacita_luzka_standard_kyslik_kapacita_celkem = lh.reprofilizovana_kapacita_luzka_standard_kyslik_kapacita_celkem - fh.reprofilizovana_kapacita_luzka_standard_kyslik_kapacita_celkem; h.reprofilizovana_kapacita_luzka_standard_kyslik_kapacita_planovana = lh.reprofilizovana_kapacita_luzka_standard_kyslik_kapacita_planovana - fh.reprofilizovana_kapacita_luzka_standard_kyslik_kapacita_planovana; h.reprofilizovana_kapacita_luzka_standard_kyslik_kapacita_volna = lh.reprofilizovana_kapacita_luzka_standard_kyslik_kapacita_volna - fh.reprofilizovana_kapacita_luzka_standard_kyslik_kapacita_volna; h.luzka_standard_kyslik_kapacita_celkem = lh.luzka_standard_kyslik_kapacita_celkem - fh.luzka_standard_kyslik_kapacita_celkem; h.luzka_standard_kyslik_kapacita_volna_covid_negativni = lh.luzka_standard_kyslik_kapacita_volna_covid_negativni - fh.luzka_standard_kyslik_kapacita_volna_covid_negativni; h.luzka_standard_kyslik_kapacita_volna_covid_pozitivni = lh.luzka_standard_kyslik_kapacita_volna_covid_pozitivni - fh.luzka_standard_kyslik_kapacita_volna_covid_pozitivni; h.upv_kapacita_celkem = lh.upv_kapacita_celkem - fh.upv_kapacita_celkem; h.upv_kapacita_volna = lh.upv_kapacita_volna - fh.upv_kapacita_volna; h.ventilatory_operacni_sal_kapacita_celkem = lh.ventilatory_operacni_sal_kapacita_celkem - fh.ventilatory_operacni_sal_kapacita_celkem; h.ventilatory_operacni_sal_kapacita_volna = lh.ventilatory_operacni_sal_kapacita_volna - fh.ventilatory_operacni_sal_kapacita_volna; h.ventilatory_prenosne_kapacita_celkem = lh.ventilatory_prenosne_kapacita_celkem - fh.ventilatory_prenosne_kapacita_celkem; h.ventilatory_prenosne_kapacita_volna = lh.ventilatory_prenosne_kapacita_volna - fh.ventilatory_prenosne_kapacita_volna; return(h); }
static void Main(string[] args) { var DArgs = args .Select(m => m.Split('=')) .ToDictionary(m => m[0].ToLower(), v => v.Length == 1 ? "" : v[1]); CreateDataset(DArgs); //find xls url string openDataPage = "https://dip.mzcr.cz/api/v1/kapacity-intenzivni-pece-zdravotnicke-zarizeni.csv"; Uri xlsUrl = null; DateTime fromD = DateTime.Now.Date.AddDays(-30); Devmasters.Logging.Logger.Root.Info("Getting URL of csv from " + openDataPage); using (Devmasters.Net.HttpClient.URLContent net = new Devmasters.Net.HttpClient.URLContent(openDataPage)) { Devmasters.Logging.Logger.Root.Info("Getting csv"); var fn = "kapacity-intenzivni-pece-zdravotnicke-zarizeni.csv"; System.IO.File.WriteAllBytes(fn, net.GetBinary().Binary); using (var reader = new StreamReader(fn)) //new StringReader(html)) { using (var csv = new CsvReader(reader, new CsvHelper.Configuration.CsvConfiguration(System.Globalization.CultureInfo.InvariantCulture) { Delimiter = ",", IgnoreBlankLines = true, HasHeaderRecord = true, TrimOptions = CsvHelper.Configuration.TrimOptions.Trim })) { //csv.Context.RegisterClassMap<NemocniceMap>(); //var records = csv.GetRecords<Nemocnice>().ToArray(); List <Nemocnice> recs = new List <Nemocnice>(); if (true) { csv.Read(); csv.ReadHeader(); while (csv.Read()) { var record = new Nemocnice { crrt_kapacita_celkem = csv.GetField <int>("crrt_kapacita_celkem"), crrt_kapacita_volna = csv.GetField <int>("crrt_kapacita_volna"), ecmo_kapacita_celkem = csv.GetField <int>("ecmo_kapacita_celkem"), ecmo_kapacita_volna = csv.GetField <int>("ecmo_kapacita_volna"), ihd_kapacita_celkem = csv.GetField <int>("ihd_kapacita_celkem"), ihd_kapacita_volna = csv.GetField <int>("ihd_kapacita_volna"), kraj_nazev = csv.GetField <string>("kraj_nazev"), kraj_nuts_kod = csv.GetField <string>("kraj_nuts_kod"), luzka_aro_jip_kapacita_celkem = csv.GetField <int>("luzka_aro_jip_kapacita_celkem"), luzka_aro_jip_kapacita_volna_covid_negativni = csv.GetField <int>("luzka_aro_jip_kapacita_volna_covid_negativni"), luzka_aro_jip_kapacita_volna_covid_pozitivni = csv.GetField <int>("luzka_aro_jip_kapacita_volna_covid_pozitivni"), luzka_standard_kyslik_kapacita_celkem = csv.GetField <int>("luzka_standard_kyslik_kapacita_celkem"), luzka_standard_kyslik_kapacita_volna_covid_negativni = csv.GetField <int>("luzka_standard_kyslik_kapacita_volna_covid_negativni"), luzka_standard_kyslik_kapacita_volna_covid_pozitivni = csv.GetField <int>("luzka_standard_kyslik_kapacita_volna_covid_pozitivni"), reprofilizovana_kapacita_luzka_aro_jip_kapacita_celkem = csv.GetField <int?>("reprofilizovana_kapacita_luzka_aro_jip_kapacita_celkem") ?? 0, reprofilizovana_kapacita_luzka_aro_jip_kapacita_planovana = csv.GetField <int?>("reprofilizovana_kapacita_luzka_aro_jip_kapacita_planovana") ?? 0, reprofilizovana_kapacita_luzka_aro_jip_kapacita_volna = csv.GetField <int?>("reprofilizovana_kapacita_luzka_aro_jip_kapacita_volna") ?? 0, reprofilizovana_kapacita_luzka_standard_kyslik_kapacita_celkem = csv.GetField <int?>("reprofilizovana_kapacita_luzka_standard_kyslik_kapacita_celkem") ?? 0, reprofilizovana_kapacita_luzka_standard_kyslik_kapacita_planovana = csv.GetField <int?>("reprofilizovana_kapacita_luzka_standard_kyslik_kapacita_planovana") ?? 0, reprofilizovana_kapacita_luzka_standard_kyslik_kapacita_volna = csv.GetField <int?>("reprofilizovana_kapacita_luzka_standard_kyslik_kapacita_volna") ?? 0, upv_kapacita_celkem = csv.GetField <int>("upv_kapacita_celkem"), upv_kapacita_volna = csv.GetField <int>("upv_kapacita_volna"), ventilatory_operacni_sal_kapacita_celkem = csv.GetField <int>("ventilatory_operacni_sal_kapacita_celkem"), ventilatory_operacni_sal_kapacita_volna = csv.GetField <int>("ventilatory_operacni_sal_kapacita_volna"), ventilatory_prenosne_kapacita_celkem = csv.GetField <int>("ventilatory_prenosne_kapacita_celkem"), ventilatory_prenosne_kapacita_volna = csv.GetField <int>("ventilatory_prenosne_kapacita_volna"), zz_kod = csv.GetField <string>("zz_kod"), zz_nazev = csv.GetField <string>("zz_nazev"), datum = DateTime.ParseExact(csv.GetField <string>("datum"), "yyyy-MM-dd", System.Globalization.CultureInfo.CurrentCulture) }; var iis = record.id; if (record.datum > fromD) { recs.Add(record); } } } //ds.AddOrRewriteItems(recs); Devmasters.Batch.Manager.DoActionForAll <Nemocnice>(recs.OrderByDescending(o => o.datum), n => { Console.Write("."); ds.AddOrUpdateItem(n, HlidacStatu.Api.V2.Dataset.Typed.ItemInsertMode.skip); return(new Devmasters.Batch.ActionOutputData()); }, false); } } } }