/// <summary>
        /// Processo o arquivo de retorno relacionado a identificação
        /// </summary>
        /// <param name="idArquivo"></param>
        /// <returns></returns>
        public void ProcessaDadosParaGerarArquivoRetornoIdentif(int idArquivo, string pathArquivoOrigem, string codConvenio = "ACSO")
        {
            // using (StringWriter sw = new StringWriter(new System.Globalization.CultureInfo("pt-BR")))
            // {
            DateTime dtAgora      = DateTime.Now;
            string   pathDestino  = ConfigurationManager.AppSettings["ACSOIDTSC_R.CRI.DiretotioDestino"];
            string   nomeArquivo  = this.FormataNomeArquivo(codConvenio, dtAgora);
            string   pathCompleto = Path.Combine(pathDestino, nomeArquivo);

            ENLog.MapaArquivos mapArq = new ENLog.MapaArquivos(nomeArquivo, ENLog.TipoArquivo.ACSOIDTSC_R, pathArquivoOrigem, 0);
            this.Log.AtualizaArquivo <ENLog.MapaArquivos>(mapArq, ENLog.StatusProcessamentoArquivo.NaoProcessado, pathArquivoOrigem, "Inicia processamento de arquivo");
            int novoIdArquivo = mapArq.IdArquivo;

            int numLinha = 0;

            try
            {
                this.Log.AtualizaArquivo <ENLog.MapaArquivos>(mapArq, ENLog.StatusProcessamentoArquivo.EmProcessamento, String.Empty, "Inicia processamento de arquivo");
                numLinha++;

                //Gero Cabeçalho
                var cab = this.MontaCabecalho(novoIdArquivo, dtAgora, nomeArquivo, "ACSO", "ACESSO", numLinha);
                cab.Insere();
                //sw.WriteLine(cab.ToString());

                //Gero Detalhe
                var detalhe = new Identificacao.ACSOIDTSC_R.ACSOIDTSC_RDetalheEN();
                detalhe.DataProc  = dtAgora;
                detalhe.IdArquivo = novoIdArquivo;
                var detalhesRetorno = DetalheRetornoBaseBD.ConsultaDetalheIdentificacao(idArquivo);

                int contTotalRetorno = 0;
                int contErro         = 0;
                foreach (var detalheRet in detalhesRetorno)
                {
                    try
                    {
                        numLinha++;
                        contTotalRetorno++;
                        this.CompoeDetalhe(detalheRet, detalhe, numLinha);
                        detalhe.Insere();
                        //sw.WriteLine(detalhe.ToString());
                    }
                    catch (Exception)
                    {
                        contErro++;
                        string descErro = String.Format("Total de linhas com erro: {0}", contErro);
                        this.InsereLog(mapArq, numLinha, ENLog.TipoLog.Informação, descErro);
                    }
                }

                numLinha++;
                //Gero Rodapé
                var rdp = this.MontaRodape(novoIdArquivo, numLinha, contTotalRetorno);
                rdp.Insere();
                //sw.WriteLine(rdp.ToString());
            }
            catch (Exception)
            {
                string descErro = "Erro processamento arquivo";
                Log.AtualizaArquivo <ENLog.MapaArquivos>(mapArq, ENLog.StatusProcessamentoArquivo.ProcessadoErro, pathCompleto, descErro);
                this.InsereLog(mapArq, numLinha, ENLog.TipoLog.Informação, descErro);
            }
            //}
        }
        /// <summary>
        /// Processo o arquivo de retorno relacionado a identificação
        /// </summary>
        /// <param name="idArquivo"></param>
        /// <returns></returns>
        public void ProcessaDadosParaGerarArquivoRetornoIdentif(int idArquivo, string pathArquivoOrigem, string codConvenio = "ACSO")
        {
            // using (StringWriter sw = new StringWriter(new System.Globalization.CultureInfo("pt-BR")))
               // {
                DateTime dtAgora = DateTime.Now;
                string pathDestino = ConfigurationManager.AppSettings["ACSOIDTSC_R.CRI.DiretotioDestino"];
                string nomeArquivo = this.FormataNomeArquivo(codConvenio, dtAgora);
                string pathCompleto = Path.Combine(pathDestino, nomeArquivo);

                ENLog.MapaArquivos mapArq = new ENLog.MapaArquivos(nomeArquivo, ENLog.TipoArquivo.ACSOIDTSC_R, pathArquivoOrigem, 0);
                this.Log.AtualizaArquivo<ENLog.MapaArquivos>(mapArq, ENLog.StatusProcessamentoArquivo.NaoProcessado, pathArquivoOrigem, "Inicia processamento de arquivo");
                int novoIdArquivo = mapArq.IdArquivo;

                int numLinha = 0;

                try
                {

                    this.Log.AtualizaArquivo<ENLog.MapaArquivos>(mapArq, ENLog.StatusProcessamentoArquivo.EmProcessamento, String.Empty, "Inicia processamento de arquivo");
                    numLinha++;

                    //Gero Cabeçalho
                    var cab = this.MontaCabecalho(novoIdArquivo, dtAgora, nomeArquivo, "ACSO", "ACESSO", numLinha);
                    cab.Insere();
                    //sw.WriteLine(cab.ToString());

                    //Gero Detalhe
                    var detalhe = new Identificacao.ACSOIDTSC_R.ACSOIDTSC_RDetalheEN();
                    detalhe.DataProc = dtAgora;
                    detalhe.IdArquivo = novoIdArquivo;
                    var detalhesRetorno = DetalheRetornoBaseBD.ConsultaDetalheIdentificacao(idArquivo);

                    int contTotalRetorno = 0;
                    int contErro = 0;
                    foreach (var detalheRet in detalhesRetorno)
                    {
                        try
                        {
                            numLinha++;
                            contTotalRetorno++;
                            this.CompoeDetalhe(detalheRet, detalhe, numLinha);
                            detalhe.Insere();
                            //sw.WriteLine(detalhe.ToString());
                        }
                        catch (Exception)
                        {
                            contErro++;
                            string descErro = String.Format("Total de linhas com erro: {0}", contErro);
                            this.InsereLog(mapArq, numLinha, ENLog.TipoLog.Informação, descErro);
                        }
                    }

                    numLinha++;
                    //Gero Rodapé
                    var rdp = this.MontaRodape(novoIdArquivo, numLinha, contTotalRetorno);
                    rdp.Insere();
                    //sw.WriteLine(rdp.ToString());
                }
                catch (Exception)
                {
                    string descErro = "Erro processamento arquivo";
                    Log.AtualizaArquivo<ENLog.MapaArquivos>(mapArq, ENLog.StatusProcessamentoArquivo.ProcessadoErro, pathCompleto, descErro);
                    this.InsereLog(mapArq, numLinha, ENLog.TipoLog.Informação, descErro);
                }
            //}
        }