Exemplo n.º 1
0
        //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");
                        }
                    }
                }
        }
Exemplo n.º 2
0
        //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;
                            }
                        }
                    }
                }
        }