/// <summary>
        /// Insere cartões de arquivos XLS e TXT.
        /// </summary>
        /// <param name="ds"></param>
        /// <param name="idArquivo"></param>
        /// <param name="tpLog"></param>
        /// <param name="mapArq"></param>
        private void InsereCartoes(DataSet ds, int idArquivo, ENLog.TipoLog tpLog, ENLog.MapaArquivos mapArq)
        {
            int qtdCgr = 0;
            try
            {
                var acsCrgDetEn = new ACSOPRGCRDetalheEN();
                var crgCn = new CargaCN();

                List<ValidationResult> lstVr = null;

                int numLinha = 0;
                foreach (DataRow dr in ds.Tables[0].Rows)
                {
                    try
                    {
                        if (!String.IsNullOrEmpty(dr["Identificacao"].ToString()))
                        {
                            numLinha++;
                            lstVr = acsCrgDetEn.Mapeia(dr, crgCn.CriaMapaColuna(dr));

                            if (lstVr.Count == 0)
                            {
                                lstVr = crgCn.Valida(acsCrgDetEn);
                                if (lstVr.Count == 0)
                                {
                                    acsCrgDetEn.NumLinha = numLinha;
                                    acsCrgDetEn.IdArquivo = idArquivo;
                                    acsCrgDetEn.Insere();
                                    qtdCgr++;
                                }
                                else
                                {
                                    tpLog = ENLog.TipoLog.Informação;
                                    this.InsereLogErros(mapArq, tpLog, qtdCgr, numLinha, lstVr);
                                }
                            }
                            else
                            {
                                tpLog = ENLog.TipoLog.Informação;
                                this.InsereLogErros(mapArq, tpLog, qtdCgr, numLinha, lstVr);
                            }
                        }
                    }
                    catch (Exception e)
                    {
                        tpLog = ENLog.TipoLog.Alerta;
                        string descErro = String.Format("Erro ao processar arquivo de Programação de Carga de Cartões. Linha: {0}", numLinha);
                        this.InsereLog(mapArq, qtdCgr, tpLog, descErro);
                    }
                }
            }
            catch (Exception e)
            {
                tpLog = ENLog.TipoLog.Erro;
                string descErro = "Erro ao processar arquivo de Programação de Carga de Cartões";
                this.InsereLog(mapArq, qtdCgr, tpLog, descErro);
                throw;
            }


            switch (tpLog)
            {
                case upSight.Global.Log.EN.TipoLog.Erro:
                    Log.AtualizaArquivo<ENLog.MapaArquivos>(mapArq, ENLog.StatusProcessamentoArquivo.NaoProcessado, mapArq.Arquivo, "Finaliza processamento de arquivo");
                    break;
                default:
                    Log.AtualizaArquivo<ENLog.MapaArquivos>(mapArq, ENLog.StatusProcessamentoArquivo.ProcessadoOk, mapArq.Arquivo, "Finaliza processamento de arquivo");
                    break;
            }

            string desc = String.Format("Total de cargas realizadas: {0}", qtdCgr);
            this.InsereLog(mapArq, qtdCgr, ENLog.TipoLog.Informação, desc);
        }
        /// <summary>
        /// Insere cartões de arquivos XLS e TXT.
        /// </summary>
        /// <param name="ds"></param>
        /// <param name="idArquivo"></param>
        /// <param name="tpLog"></param>
        /// <param name="mapArq"></param>
        private void InsereCartoes(DataSet ds, int idArquivo, ENLog.TipoLog tpLog, ENLog.MapaArquivos mapArq)
        {
            int qtdCgr = 0;
            try
            {
                var acsCrgDetEn = new ACSOPRGCRDetalheEN();
                var crgCn = new CargaCN();

                List<ValidationResult> lstVr = null;

                int numLinha = 0;
                foreach (DataRow dr in ds.Tables[0].Rows)
                {
                    try
                    {
                        if (!String.IsNullOrEmpty(dr["Identificacao"].ToString()))
                        {
                            numLinha++;
                            lstVr = acsCrgDetEn.Mapeia(dr, crgCn.CriaMapaColuna(dr));

                            if (lstVr.Count == 0)
                            {
                                lstVr = crgCn.Valida(acsCrgDetEn);
                                if (lstVr.Count == 0)
                                {
                                    acsCrgDetEn.NumLinha = numLinha;
                                    acsCrgDetEn.IdArquivo = idArquivo;
                                    acsCrgDetEn.Insere();
                                    qtdCgr++;
                                }
                                else
                                {
                                    tpLog = ENLog.TipoLog.Informação;
                                    this.InsereLogErros(mapArq, tpLog, qtdCgr, numLinha, lstVr);
                                }
                            }
                            else
                            {
                                tpLog = ENLog.TipoLog.Informação;
                                this.InsereLogErros(mapArq, tpLog, qtdCgr, numLinha, lstVr);
                            }
                        }
                    }
                    catch (Exception e)
                    {
                        tpLog = ENLog.TipoLog.Alerta;
                        string descErro = String.Format("Erro ao processar arquivo de Programação de Carga de Cartões. Linha: {0}", numLinha);
                        this.InsereLog(mapArq, qtdCgr, tpLog, descErro);
                    }
                }
            }
            catch (Exception e)
            {
                tpLog = ENLog.TipoLog.Erro;
                string descErro = "Erro ao processar arquivo de Programação de Carga de Cartões";
                this.InsereLog(mapArq, qtdCgr, tpLog, descErro);
                throw;
            }

            switch (tpLog)
            {
                case upSight.Global.Log.EN.TipoLog.Erro:
                    Log.AtualizaArquivo<ENLog.MapaArquivos>(mapArq, ENLog.StatusProcessamentoArquivo.NaoProcessado, mapArq.Arquivo, "Finaliza processamento de arquivo");
                    break;
                default:
                    Log.AtualizaArquivo<ENLog.MapaArquivos>(mapArq, ENLog.StatusProcessamentoArquivo.ProcessadoOk, mapArq.Arquivo, "Finaliza processamento de arquivo");
                    break;
            }

            string desc = String.Format("Total de cargas realizadas: {0}", qtdCgr);
            this.InsereLog(mapArq, qtdCgr, ENLog.TipoLog.Informação, desc);
        }