//private static readonly ILog Logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); //private static Devmasters.Core.Logging.Logger logger = new Devmasters.Core.Logging.Logger("HlidacStatu.Downloader"); static void Main(string[] args) { XmlConfigurator.Configure(); string path = @"d:\Hlidac\dotace\output.csv"; //string pathw = @"d:\Hlidac\dotace\ids.csv"; DotaceService ds = new DotaceService(); //using (StreamWriter streamWriter = new StreamWriter(pathw)) int lineNbr = 0; using (StreamReader stream = new StreamReader(path)) using (var csv = new CsvReader(stream)) { csv.Configuration.Delimiter = ","; csv.Configuration.Encoding = Encoding.UTF8; csv.Read(); csv.ReadHeader(); //List<Dotace> dotaceList = new List<Dotace>(); while (csv.Read()) { //streamWriter.WriteLine(csv.GetField("idDotace")); Console.WriteLine(lineNbr++); try { Dotace dotace = ds.Get(csv.GetField("idDotace")); Rozhodnuti rozhodnuti = new Rozhodnuti(); if (!csv.GetField <bool>("rozhodnutiRefundaceIndikator")) //refundace není dotace { rozhodnuti.Id = csv.GetField("idRozhodnuti"); rozhodnuti.Datum = DateTime.Parse($"{csv.GetField<int?>("rozhodnutiRokRozhodnuti")}-1-1"); rozhodnuti.CastkaPozadovana = csv.GetField <float>("rozhodnutiCastkaPozadovana"); rozhodnuti.CastkaRozhodnuta = csv.GetField <float>("rozhodnutiCastkaRozhodnuta"); rozhodnuti.JePujcka = csv.GetField <bool>("rozhodnutiNavratnostIndikator"); rozhodnuti.NazevPoskytovatele = csv.GetField("rozhodnutiDotacePoskytovatelNazev"); } DotacniProgram program = new DotacniProgram() { Id = csv.GetField("idOperacniProgram"), Nazev = csv.GetField("dotaceOperacniProgramNazev"), Kod = csv.GetField("dotaceOperacniProgramKod"), Url = string.IsNullOrWhiteSpace(csv.GetField("dotaceIriOperacniProgram")) ? csv.GetField("dotaceIriProgram") : csv.GetField("dotaceIriOperacniProgram") }; Prijemce prijemce = new Prijemce() { ObchodniJmeno = csv.GetField("prijemceObchodniJmeno"), JmenoPrijemce = csv.GetField("prijemceJmenoPrijemce"), Ico = NormalizeIco(csv.GetField("prijemceIco")), PrijemceObecNazev = csv.GetField("prijemceObecNazev"), PrijemceOkresNazev = csv.GetField("prijemceOkresNazev"), RokNarozeni = csv.GetField <int?>("prijemceRokNarozeni") }; if (dotace is null) { dotace = new Dotace() { IdDotace = $"CEDR-{csv.GetField("idDotace")}", DatumPodpisu = csv.GetField <DateTime?>("dotacePodpisDatum"), Rozhodnuti = new List <Rozhodnuti>() { rozhodnuti }, DotacniProgram = program, Prijemce = prijemce, DatumAktualizace = csv.GetField <DateTime?>("dotaceDTAktualizace"), KodProjektu = csv.GetField("dotaceProjektKod"), NazevProjektu = csv.GetField("dotaceProjektNazev"), IdProjektu = csv.GetField("dotaceProjektIdentifikator"), NazevZdroje = "CEDR", UrlZdroje = "http://cedropendata.mfcr.cz/c3lod/cedr/resource/Dotace/" + csv.GetField("idDotace"), }; } else { // kvůli idObdobi je zde duplicita if (dotace.Rozhodnuti.Any(r => r.Id == rozhodnuti.Id)) { continue; } dotace.Rozhodnuti.Add(rozhodnuti); } dotace.Save(); } catch (Exception ex) { Console.WriteLine(csv.GetField("idObdobi")); Console.WriteLine("error"); } } } }
//private static readonly ILog Logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); //private static Devmasters.Core.Logging.Logger logger = new Devmasters.Core.Logging.Logger("HlidacStatu.Downloader"); static void Main(string[] args) { XmlConfigurator.Configure(); string path = @"d:\Hlidac\dotace\dotInfo.json"; //string pathw = @"d:\Hlidac\dotace\names.csv"; DotaceService ds = new DotaceService(); //using (StreamWriter sw = File.AppendText(pathw)) using (StreamReader file = File.OpenText(path)) using (JsonTextReader reader = new JsonTextReader(file)) { //var serializer = new JsonSerializer(); int counter = 0; while (reader.Read()) { if (reader.TokenType == JsonToken.StartObject) { try { JObject o2 = (JObject)JToken.ReadFrom(reader); // Deserialize each object from the stream individually and process it //var data = serializer.Deserialize<playdata>(reader); //ProcessPlayData(playdata); if ((string)o2["type"] == "detail") { Console.WriteLine(counter++); } else { continue; } string dotaceId = $"DotInfo-{GetTabValue(o2, "tab1", "Identifikátor dot. / Kód IS")}"; // o2["data"]["tab1"]["data"].Where(jt => (string)jt["name"] == "Identifikátor dot. / Kód IS").Select(jt => (string)jt["value"]).FirstOrDefault(); Dotace dotace = ds.Get(dotaceId); Rozhodnuti rozhodnuti = new Rozhodnuti() { CastkaPozadovana = ParseValue(GetTabValue(o2, "tab1", "Částka požadovaná")), CastkaRozhodnuta = ParseValue(GetTabValue(o2, "tab1", "Částka schválená")), Datum = HlidacStatu.Lib.Validators.DateInText( RemoveWhiteSpaces(GetTabValue(o2, "tab1", "Datum vydání rozhodnutí") )), NazevPoskytovatele = GetTabValue(o2, "tab4", "Poskytovatel - Název OS"), IcoPoskytovatele = GetTabValue(o2, "tab4", "IČ poskytovatele") }; DotacniProgram program = new DotacniProgram() { Nazev = GetTabValue(o2, "tab1", "Účel dotace") }; Prijemce prijemce = new Prijemce() { ObchodniJmeno = GetTabValue(o2, "tab2", "Obchodní jméno"), JmenoPrijemce = GetTabValue(o2, "tab2", "Příjemce dotace - Jméno"), Ico = NormalizeIco(GetTabValue(o2, "tab2", "IČ účastníka / IČ zahraniční")), PrijemceObecNazev = GetTabValue(o2, "tab2", "Název obce / Doruč. pošta"), PrijemceOkresNazev = GetTabValue(o2, "tab2", "Název okresu"), RokNarozeni = HlidacStatu.Lib.Validators.DateInText( RemoveWhiteSpaces(GetTabValue(o2, "tab2", "Datum narození") ))?.Year, PSC = GetTabValue(o2, "tab2", "PSČ") }; if (dotace is null) { dotace = new Dotace() { IdDotace = dotaceId, DatumPodpisu = HlidacStatu.Lib.Validators.DateInText( RemoveWhiteSpaces(GetTabValue(o2, "tab1", "Datum vydání rozhodnutí"))), IdProjektu = dotaceId, NazevProjektu = GetTabValue(o2, "tab1", "Název dotace"), DotacniProgram = program, Prijemce = prijemce, Rozhodnuti = new List <Rozhodnuti>() { rozhodnuti }, NazevZdroje = "DotInfo", UrlZdroje = (string)o2["url"] }; } else { continue; //duplicitu přeskočit // kvůli idObdobi je zde duplicita //dotace.Rozhodnuti.Add(rozhodnuti); } dotace.Save(); } catch (Exception ex) { Console.WriteLine(ex); //throw; } } } } }