public List <LinhaDadosBCB> RetonaListaDiferentes(DadosBCB dado) { List <LinhaDadosBCB> linhasDiferentes = new List <LinhaDadosBCB>(); int numeroDeLinhas = this.Linhas.Count(); int numeroDeLDados = dado.Linhas.Count(); if (numeroDeLinhas == numeroDeLDados) { for (int i = 0; i < numeroDeLDados; i++) { LinhaDadosBCB linhaDado = dado.Linhas[i]; if (this.Linhas[i].Compara(linhaDado)) { linhasDiferentes.Add(linhaDado); } } } else//adicionaram ou removeram linhas, vou notificar todas { for (int i = 0; i < numeroDeLDados; i++) { linhasDiferentes.Add(dado.Linhas[i]); } } return(linhasDiferentes); }
public static string MontaTextoTabela(ref int semMudanca, DadosBCB dadosBCB, DadosBCB dadoRecuperadosBCB) { string texto = string.Empty; List <LinhaDadosBCB> listaMudancas = new List <LinhaDadosBCB>(); listaMudancas = dadoRecuperadosBCB != null?dadoRecuperadosBCB.RetonaListaDiferentes(dadosBCB) : dadosBCB.Linhas.ToList(); foreach (LinhaDadosBCB linhaMudada in listaMudancas) { texto += "<tr>" + Formatador.PrintaLinha(linhaMudada) + "</tr>"; } if ((listaMudancas.Count() > 0)) { semMudanca++; } return(texto); }
public static bool MontaTextoESalvaArquivo(IRelatorio relatorio, ref string textoTabelas) { int i = 0; int somaMudadas = 0; BinaryFormatter binario = new BinaryFormatter(); textoTabelas += string.Format(ConstStringHtml.tituloEUrl, relatorio.Nome, relatorio.Url); foreach (HtmlNodeCollection noTabela in Crawler.RetornaNodeHTML(relatorio)) { int mudadas = 0; string textoTabela = string.Format(ConstStringHtml.tituloTabela, relatorio.NomeTabelas[i]); //Não mova esse i++ de lugar!! i++; if (noTabela == null) { textoTabela += Formatador.PrintaLinha(new LinhaDadosBCB("Erro na leitura do nó", "Verifique o serviço", "Tabela " + i.ToString())); somaMudadas++; continue; } relatorio.Html = noTabela; string nomeArquivo = string.Format(ConstStringHtml.nomeBin, relatorio.Nome, i); DadosBCB dadosBCB = new DadosBCB(relatorio); if (!File.Exists(nomeArquivo)) { Stream tmp = File.Create(nomeArquivo); tmp.Close(); } using (Stream stream = File.OpenRead(nomeArquivo)) { DadosBCB dadoRecuperadosBCB = null; if (!(stream.Length == 0)) { dadoRecuperadosBCB = (DadosBCB)binario.Deserialize(stream); } textoTabela += ConstStringHtml.abreTabela + ConstStringHtml.abreTR; textoTabela += Formatador.PrintaCabecalho(relatorio.Cabecalho); textoTabela += "</tr>"; textoTabela += MontaTextoTabela(ref mudadas, dadosBCB, dadoRecuperadosBCB); textoTabela += "</table>"; } using (Stream stream = File.OpenWrite(nomeArquivo)) { binario.Serialize(stream, dadosBCB); } somaMudadas += mudadas; if (mudadas == 0) { textoTabela = string.Empty; if (i == relatorio.NumeroTabelas && somaMudadas == 0) { textoTabela = string.Format(ConstStringHtml.nenuhmaAlteracao, relatorio.Nome); } } textoTabelas += textoTabela; } return(!(somaMudadas == 0)); }
private static string MontaTabelasESalvaArquivos(IRelatorio relatorio, StringBuilder textoTabelas, BinaryFormatter binario) { int i = 0; int somaMudadas = 0; Crawler crawler = new Crawler(); foreach (HtmlNodeCollection noTabela in crawler.RetornaNodeRelatorio(relatorio)) { int mudadas = 0; StringBuilder textoTabela = new StringBuilder(string.Format(ConstStringHtml.tituloTabela, relatorio.NomeTabelas[i])); //Não mova esse i++ de lugar!! i++; if (noTabela == null) { return(string.Empty); } relatorio.Html = noTabela; string nomeArquivo = string.Format(ConstStringHtml.nomeBinTabelas, relatorio.Nome, i); DadosBCB dadosBCB = new DadosBCB(relatorio); if (!File.Exists(nomeArquivo)) { Stream tmp = File.Create(nomeArquivo); tmp.Close(); } using (Stream stream = File.OpenRead(nomeArquivo)) { DadosBCB dadoRecuperadosBCB = null; if (!(stream.Length == 0)) { dadoRecuperadosBCB = (DadosBCB)binario.Deserialize(stream); } textoTabela.Append(ConstStringHtml.abreTabela + ConstStringHtml.abreTR); textoTabela.Append(Formatador.PrintaCabecalho(relatorio.Cabecalho) + "</tr>"); textoTabela.Append(Formatador.RetornaTextoTabela(ref mudadas, dadosBCB, dadoRecuperadosBCB) + "</table>"); } using (Stream stream = File.OpenWrite(nomeArquivo)) { binario.Serialize(stream, dadosBCB); } somaMudadas += mudadas; if (mudadas == 0) { textoTabela.Clear(); if (i == relatorio.NumeroTabelas && somaMudadas == 0) { textoTabela.Append(string.Format(ConstStringHtml.nenuhmaAlteracao, relatorio.Nome)); } } textoTabelas.Append(textoTabela); } return(textoTabelas.ToString()); }