Ejemplo n.º 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);
        }
Ejemplo n.º 2
0
        public void XMLWriter(IEnumerable <Artigo> artigos, string doc)
        {
            // TODO: fix it
            // Rollback to previous name
            //string finalURL = ProcessName(artigos.FirstOrDefault(), doc);
            string finalURL = doc;

            var settings = new XmlWriterSettings()
            {
                Indent = true
            };

            using (Stream virtualStream = VirtualFS.OpenWrite($"{finalURL}.xml"))
                using (XmlWriter writer = XmlWriter.Create(virtualStream, settings))
                {
                    writer.WriteStartDocument();
                    writer.WriteStartElement("Artigo");

                    foreach (Artigo artigo in artigos)
                    {
                        Conteudo     conteudo  = artigo.Conteudo;
                        Metadados    metadados = artigo.Metadados;
                        List <Anexo> anexos    = artigo.Anexos;


                        //Writing Metadata
                        writer.WriteStartElement("Metadados");

                        writer.WriteAttributeString("ID", conteudo.IntenalId.ToString());
                        if (metadados.Nome != null)
                        {
                            writer.WriteAttributeString("Nome", ConvertBreakline2Space(metadados.Nome));
                        }
                        if (metadados.TipoDoArtigo != null)
                        {
                            writer.WriteAttributeString("TipoDoArtigo", ConvertBreakline2Space(metadados.TipoDoArtigo));
                        }
                        if (conteudo.Hierarquia != null)
                        {
                            writer.WriteAttributeString("Hierarquia", ConvertBreakline2Space(conteudo.Hierarquia));
                        }
                        if (metadados.Grade != null)
                        {
                            writer.WriteAttributeString("Grade", ConvertBreakline2Space(metadados.Grade));
                        }
                        if (metadados.NumeroDaPagina >= 0)
                        {
                            writer.WriteAttributeString("NumPagina", metadados.NumeroDaPagina.ToString());
                        }

                        writer.WriteEndElement();

                        //Writing Body
                        writer.WriteStartElement("Conteudo");

                        if (conteudo.Titulo != null)
                        {
                            writer.WriteElementString("Titulo", ConvertBreakline2Space(conteudo.Titulo));
                        }
                        if (conteudo.Caput != null)
                        {
                            writer.WriteElementString("Caput", conteudo.Caput);
                        }
                        if (conteudo.Corpo != null)
                        {
                            writer.WriteElementString("Corpo", conteudo.Corpo);
                        }
                        if (conteudo.Autor.Count > 0)
                        {
                            writer.WriteStartElement("Autores");
                            foreach (Autor autor in conteudo.Autor)
                            {
                                writer.WriteStartElement("Autor");
                                if (autor.Cargo != null)
                                {
                                    if (autor.Assinatura == null)
                                    {
                                        writer.WriteString(ConvertBreakline2Space(autor.Cargo));
                                    }
                                    else
                                    {
                                        writer.WriteAttributeString("Cargo", ConvertBreakline2Space(autor.Cargo));
                                        writer.WriteString(ConvertBreakline2Space(autor.Assinatura));
                                    }
                                }
                                else
                                {
                                    writer.WriteString(ConvertBreakline2Space(autor.Assinatura));
                                }

                                writer.WriteEndElement();

                                //if (autor.Assinatura != null && autor.Assinatura.Length > 3)
                                //    writer.WriteElementString("Assinatura", autor.Assinatura);
                                //if (autor.Cargo != null)
                                //    writer.WriteElementString("Cargo", ConvertBreakline2Space(autor.Cargo));
                            }
                            writer.WriteEndElement();
                        }
                        if (conteudo.Data != null)
                        {
                            writer.WriteElementString("Data", conteudo.Data);
                        }

                        writer.WriteEndElement();

                        //Writing Anexos
                        if (anexos.Count > 0)
                        {
                            writer.WriteStartElement("Anexos");
                            foreach (Anexo item in anexos)
                            {
                                writer.WriteStartElement("Anexo");
                                if (item.HierarquiaTitulo != null)
                                {
                                    writer.WriteElementString("Hierarquia", item.HierarquiaTitulo);
                                }
                                if (item.Titulo != null)
                                {
                                    writer.WriteElementString("Titulo", item.Titulo);
                                }
                                if (item.Texto != null)
                                {
                                    writer.WriteElementString("Texto", item.Texto);
                                }
                                writer.WriteEndElement();
                            }
                            writer.WriteEndElement();
                        }
                    }

                    writer.WriteEndElement();
                    writer.WriteEndDocument();
                }
        }
Ejemplo n.º 3
0
        public void XMLWriter(IEnumerable <Artigo> artigos, string doc)
        {
            string finalURL = doc;

            var settings = new XmlWriterSettings()
            {
                OmitXmlDeclaration = true, // omit XML declaration
                Indent             = true
            };

            using (Stream virtualStream = VirtualFS.OpenWrite($"{finalURL}.xml"))
                using (XmlWriter writer = XmlWriter.Create(virtualStream, settings))
                {
                    writer.WriteStartDocument();
                    writer.WriteStartElement("article");

                    foreach (Artigo artigo in artigos)
                    {
                        Conteudo     conteudo  = artigo.Conteudo;
                        Metadados    metadados = artigo.Metadados;
                        List <Anexo> anexos    = artigo.Anexos;

                        if (metadados.IdMateria != null)
                        {
                            writer.WriteAttributeString("idmateria", metadados.IdMateria);
                        }

                        //if (conteudo.Hierarquia != null)
                        //    writer.WriteAttributeString("hierarquia", ConvertBreakline2Space(conteudo.Hierarquia));

                        //writer.WriteAttributeString("artSection", ConvertBreakline2Space(metadados.Grade));

                        writer.WriteAttributeString("numberPage", metadados.NumeroDaPagina.ToString());

                        writer.WriteStartElement("body");

                        // Hierarquia
                        writer.WriteStartElement("Hierarquia");
                        foreach (var classe in conteudo.HierarquiaTitulo)
                        {
                            writer.WriteElementString("Classe", classe);
                        }

                        writer.WriteEndElement();

                        // Artigo
                        writer.WriteStartElement("Artigo");
                        writer.WriteCData("\n" + conteudo.Texto + "\n");
                        writer.WriteEndElement();

                        //Writing Body
                        writer.WriteElementString("Identifica", ConvertBreakline2Space(metadados.Titulo));
                        writer.WriteElementString("Ementa", conteudo.Caput);

                        writer.WriteStartElement("Texto");
                        writer.WriteCData(conteudo.Corpo);
                        writer.WriteEndElement();

                        if (conteudo.Autor.Count > 0)
                        {
                            writer.WriteStartElement("Autores");

                            foreach (Autor autor in conteudo.Autor)
                            {
                                writer.WriteElementString("assina", ConvertBreakline2Space(autor.Assinatura));
                                if (autor.Cargo != null)
                                {
                                    writer.WriteElementString("cargo", ConvertBreakline2Space(autor.Cargo));
                                }
                            }

                            writer.WriteEndElement();
                        }

                        if (conteudo.Data != null)
                        {
                            writer.WriteElementString("Data", conteudo.Data);
                        }

                        writer.WriteEndElement();

                        //Writing Anexos
                        if (anexos.Count > 0)
                        {
                            writer.WriteStartElement("Anexos");
                            foreach (Anexo item in anexos)
                            {
                                writer.WriteStartElement("Anexo");
                                if (item.HierarquiaTitulo != null)
                                {
                                    writer.WriteElementString("Hierarquia", item.HierarquiaTitulo);
                                }
                                if (item.Titulo != null)
                                {
                                    writer.WriteElementString("Titulo", item.Titulo);
                                }
                                if (item.Texto != null)
                                {
                                    writer.WriteElementString("Texto", item.Texto);
                                }
                                writer.WriteEndElement();
                            }
                            writer.WriteEndElement();
                        }
                    }

                    writer.WriteEndElement();
                    writer.WriteEndDocument();
                }
        }