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); } }
bool IsArticle(Artigo article) { if (IsNullOrPeriod(article.Conteudo.Corpo)) { return(false); } // ignora sumário //if (ContainsExclusiveTitles(article.Conteudo.Titulo)) // return false; return(true); }
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)); }