Example #1
0
        public IEnumerable <Artigo> Create(IList <Conteudo> conteudos)
        {
            List <Artigo> artigos = new List <Artigo>();

            foreach (Conteudo conteudo in conteudos)
            {
                string    titulo    = CleanIdMateria(conteudo.Titulo);
                Metadados metadados = new Metadados()
                {
                    TipoDoArtigo   = GetType(titulo),
                    Nome           = GetName(titulo),
                    Grade          = GetGrade(conteudo.Hierarquia),
                    NumeroDaPagina = conteudo.Page,
                    Titulo         = titulo,
                    IdMateria      = GetIdMateria(conteudo.Titulo)
                };


                var article = new Artigo
                {
                    Metadados = metadados,
                    Conteudo  = conteudo,
                    Anexos    = conteudo.Anexos
                };

                if (IsArticle(article))
                {
                    artigos.Add(article);
                }
            }

            return(artigos);
        }
        public void XMLWriterMultiple(IEnumerable <Artigo> artigos, string doc)
        {
            int i = 1;

            foreach (var artigo in artigos)
            {
                string doc_i    = doc + (i++);
                var    artigo_i = new Artigo[] { artigo };

                this.XMLWriter(artigo_i, doc_i);
            }
        }
Example #3
0
        bool IsArticle(Artigo article)
        {
            if (IsNullOrPeriod(article.Conteudo.Corpo))
            {
                return(false);
            }

            // ignora sumário
            //if (ContainsExclusiveTitles(article.Conteudo.Titulo))
            //    return false;

            return(true);
        }
Example #4
0
        public void Write(Artigo artigo, string doc)
        {
            // TODO: fix it
            // Rollback to previous name
            //string finalURL = ProcessName(artigos.FirstOrDefault(), doc);
            string finalURL = doc;

            JsonSerializerSettings settings = new JsonSerializerSettings()
            {
                Formatting = Formatting.Indented
            };

            using (Stream virtualStream = VirtualFS.OpenWrite($"{finalURL}.json"))
            {
                string content = JsonConvert.SerializeObject(artigo, settings);

                using (var writer = new StreamWriter(virtualStream))
                {
                    writer.Write(content);
                }
            }
        }
        private string ProcessName(Artigo artigo, string doc)
        {
            string numpag          = artigo.Metadados.NumeroDaPagina.ToString().PadLeft(4, '0');
            string docFinalText    = new DirectoryInfo(doc).Name;
            string date            = docFinalText.Substring(4, 10).Replace("_", "");
            string globalId        = docFinalText.Substring(21, docFinalText.Length - 21);
            string modelNameGlobal = $"{date}-{globalId}";
            string modelNameCustom = null;

            if (numpag == initialPage)
            {
                modelNameCustom = $"{date}-{numpag}-{countPerPage++.ToString().PadLeft(2, '0')}";
            }
            else
            {
                initialPage     = numpag;
                countPerPage    = 1;
                modelNameCustom = $"{date}-{numpag}-{countPerPage.ToString().PadLeft(2, '0')}";
            }


            return(doc.Replace(docFinalText, modelNameCustom));
        }