public static string CriarArquivoCSVDisco(int idSolicitacao, string nomeArquivo) { string ArquivoDownload = Path.Combine(@"e:\home\agilus\Temp\", nomeArquivo); //Se o arquivo não existir, ele é criado if (!System.IO.File.Exists(ArquivoDownload)) { string ArquivoTempGerado = new ConexaoDb2().RecuperarResultado(idSolicitacao, TipoRetorno.csv); //Renomeando o arquivo gerado System.IO.File.Move(ArquivoTempGerado, ArquivoDownload); } return(ArquivoDownload); }
public string GeraXmlResultado(NpgsqlDataReader ResultadosSolicitacao) { string caminho = @"e:\home\agilus\Temp\" + Path.GetRandomFileName().Replace(".", ""); bool aindaHaDados = true; StreamWriter ArquivoTemp = new StreamWriter(caminho, true); //var resultado = ResultadosSolicitacao.Tables[0].Rows; var regras = new ConexaoDb2().ObterRegraCalculoMargem(); ArquivoTemp.WriteLine("<?xml version=\"1.0\" encoding=\"utf-16\"?>"); ArquivoTemp.WriteLine("<ExtratoBeneficio xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">"); while (aindaHaDados) { bool gravou = !ResultadosSolicitacao.Read(); aindaHaDados = !gravou; while (!gravou) { ExtratoTitular titular; ExtratoRV rv; ExtratoConbas conbas; titular = ProcessarResultadoTitular(DescompactarResultado(ResultadosSolicitacao["resultado"].ToString())); ResultadosSolicitacao.Read(); rv = ProcessarResultadoRv(DescompactarResultado(ResultadosSolicitacao["resultado"].ToString())); rv.GetMargem(regras); ResultadosSolicitacao.Read(); conbas = ProcessarResultadoConbas(DescompactarResultado(ResultadosSolicitacao["resultado"].ToString())); ExtratoBeneficio eb = new ExtratoBeneficio() { nb = titular.Matricula, Titular = titular, Rv = rv, Conbas = conbas }; string elemento = ToXML <ExtratoBeneficio>(eb); ArquivoTemp.WriteLine("<Beneficio>"); ArquivoTemp.Write(elemento.Substring(162, elemento.Length - 181)); ArquivoTemp.WriteLine("</Beneficio>"); gravou = true; } } ArquivoTemp.WriteLine("</ExtratoBeneficio>"); ArquivoTemp.Close(); return(caminho); }
public string GerarCsvResultado(NpgsqlDataReader ResultadosSolicitacao) { string caminho = @"e:\home\agilus\Temp\" + Path.GetRandomFileName().Replace(".", ""); StreamWriter ArquivoTemp = new StreamWriter(caminho, true); ArquivoTemp.WriteLine(new String(' ', 2000)); int maxRubricas = 0; StringBuilder cabecalhoRubricasrv = new StringBuilder(); bool aindaHaDados = true; var regras = new ConexaoDb2().ObterRegraCalculoMargem(); while (aindaHaDados) { bool gravou = !ResultadosSolicitacao.Read(); aindaHaDados = !gravou; while (!gravou) { //Esse bloco só existe para controle dos meus objetos referenciados ExtratoTitular titular; ExtratoRV rv; ExtratoConbas conbas; StringBuilder linha = new StringBuilder(); titular = ProcessarResultadoTitular(DescompactarResultado(ResultadosSolicitacao["resultado"].ToString())); ResultadosSolicitacao.Read(); rv = ProcessarResultadoRv(DescompactarResultado(ResultadosSolicitacao["resultado"].ToString())); rv.GetMargem(regras); ResultadosSolicitacao.Read(); conbas = ProcessarResultadoConbas(DescompactarResultado(ResultadosSolicitacao["resultado"].ToString())); if (rv.Rubricas.Count > maxRubricas) { maxRubricas = rv.Rubricas.Count; } ManipulaCsv gravarResultado = new ManipulaCsv(); //A quebra de linha está no extrato rv última linha, por isso na concatenação ele ficou por último linha.Append(gravarResultado.GerarCsvTitular(titular) + gravarResultado.GerarCsvConbas(conbas) + gravarResultado.GerarCsvRv(rv)); // Gravando o arquivo em disco try { ArquivoTemp.Write(linha.ToString()); } catch (Exception) { throw new Exception("Erro ao gerar o arquivo (Fluxo de resultados congestionado). Entre em contato com o administrador do site."); } gravou = true; } } ArquivoTemp.Close(); for (int i = 1; i < maxRubricas + 1; i++) { cabecalhoRubricasrv.Append("Codigo Rubrica [" + i.ToString() + "];"); cabecalhoRubricasrv.Append("Nome Rubrica [" + i.ToString() + "];"); cabecalhoRubricasrv.Append("Valor Rubrica [" + i.ToString() + "];"); cabecalhoRubricasrv.Append("Sinal Rubrica [" + i.ToString() + "];"); } //Cabeçalho do arquivo string cabecalho = "MATRICULA;SITUACAO;NOME TITULAR;NOME MAE;CPF;IDENTIDADE;MUNICIPIO DA IDENTIDADE;UF DA IDENTIDADE;SEXO;DATA DE NASCIMENTO;ENDERECO;CEP;MUNICIPIO;UF;BAIRRO;DDD;RAMAL;FONE;EMAIL;CODIGO ESPECIE;ESPECIE;CODIGO RAMO ATIVIDADE;RAMO ATIVIDADE;CODIGO FORMA FILIACAO;FORMA FILIACAO;DATA DE ADMISSAO;SALARIO;MES COMPETENCIA;COMPETENCIA INICIAL;COMPETENCIA FINAL;CODIGO AGENCIA;VALIDADE INICIAL;VALIDADE FINAL;BANCO;CONTA CORRENTE;VALOR LIQUIDO CREDITO;MARGEM;" + cabecalhoRubricasrv.ToString(); FileStream arquivo = new FileStream(caminho, FileMode.Open, FileAccess.Write); arquivo.Seek(0, SeekOrigin.Begin); arquivo.Write(Encoding.UTF8.GetBytes(cabecalho), 0, cabecalho.Length); arquivo.Close(); return(caminho); }