Ejemplo n.º 1
0
 public void MergeCc(ClassifiedCompilation cc)
 {
     _neo4j.Cypher
     .WithParam("cc", cc)
     .Merge("(c:ClassifiedCompilation {CCNr: {cc}.CCNr})")
     .Set("c += {cc}")
     .ExecuteWithoutResults();
 }
Ejemplo n.º 2
0
        public async Task <IActionResult> CrawlCod(string cod)
        {
            var response = await client.GetAsync(cod);

            if (!response.IsSuccessStatusCode)
            {
                Debugger.Break();
            }
            try
            {
                var data = await response.Content.ReadAsAsync <ClassifiedCompilationFromService>();

                if (data?.compilation != "")
                {
                    Debugger.Break();
                }
                var cc = new ClassifiedCompilation()
                {
                    CCNr          = cod,
                    Title         = data.title.en,
                    OriginalUrl   = data.original_url.en,
                    EffectiveDate = DateTime.Parse(data.effective_date),
                    EnactmentDate = DateTime.Parse(data.enactment_date),
                    Categories    = data.categories.en,
                    //Compilation = data.compilation
                };

                var selectArticle = SelectArticle(cc.CCNr);

                var articles = data.content.en.articles.Select(selectArticle).ToList();
                var sections = new Queue <SectionImported>();
                sections.Enqueue(data.content.en);

                while (sections.Count > 0)
                {
                    var section = sections.Dequeue();

                    articles.AddRange(section.articles.Select(selectArticle));

                    section.children.ForEach(sections.Enqueue);
                }

                _neo4j.MergeCc(cc);

                _neo4j.MergeArticles(cc.CCNr, articles.Select(a => a.Article));

                _neo4j.MergeParagraphs(articles);
            }
            catch (Exception e)
            {
                Debugger.Break();
            }

            return(new EmptyResult());
        }