/// <summary> /// Percorre a tabela de Excel e retorna um tipo de objeto /// </summary> /// <typeparam name="T"></typeparam> /// <param name="path"></param> /// <param name="obj"></param> /// <returns></returns> public void LePlanilhaExcelEInsereDados(string path, int idEntidade, string nomePlanilha = "Sheet1") { string nomeArquivo = Path.GetFileName(path); ENLog.MapaArquivos mapArq = new ENLog.MapaArquivos(nomeArquivo, ENLog.TipoArquivo.ACSOIDTSC, path, 0); Log.AtualizaArquivo <ENLog.MapaArquivos>(mapArq, ENLog.StatusProcessamentoArquivo.NaoProcessado, String.Empty, "Inicia processamento de arquivo"); int idArquivo = mapArq.IdArquivo; int qtdCartoes = 0; int qtdCartoesErro = 0; using (OleDbConnection conexao = new OleDbConnection(String.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 12.0 Xml;HDR=YES;IMEX=1';", path))) { Log.AtualizaArquivo <ENLog.MapaArquivos>(mapArq, ENLog.StatusProcessamentoArquivo.EmProcessamento, mapArq.Arquivo, "Em processamento de arquivo"); string descErro = String.Empty; conexao.Open(); ENLog.TipoLog tpLog = ENLog.TipoLog.Informação; using (OleDbDataAdapter adapter = new OleDbDataAdapter(String.Format("SELECT * FROM [{0}]", String.Format("{0}$", nomePlanilha)), conexao)) { try { DataSet ds = new DataSet(); int linhas = adapter.Fill(ds); InsereCartoes(ds, idArquivo, tpLog, mapArq, qtdCartoes, qtdCartoesErro); } catch (Exception e) { tpLog = ENLog.TipoLog.Erro; descErro = "Erro ao processar arquivo Identificação Simplificada de Cartões"; this.InsereLog(mapArq, qtdCartoes, tpLog, descErro, string.Empty); throw; } finally { conexao.Close(); } PortadorBD.InsereNovoServico(idArquivo); } } }
/// <summary> /// Dado o arquivo ele é realizado o parser e seus dados são salvos nas tabelas correspondentes /// </summary> /// <param name="path"></param> public void ProcessaArquivoIdentificacaoSimpCrt(string path, int idEntidade) { string nomeArquivo = Path.GetFileName(path); ENLog.MapaArquivos mapArq = new ENLog.MapaArquivos(nomeArquivo, ENLog.TipoArquivo.ACSOIDTSC, path, 0); Log.AtualizaArquivo <ENLog.MapaArquivos>(mapArq, ENLog.StatusProcessamentoArquivo.NaoProcessado, String.Empty, "Inicia processamento de arquivo"); int idArquivo = mapArq.IdArquivo; int linhaAtual = 0; int qtdCartoes = 0; int qtdCartoesErro = 0; using (StreamReader sr = new StreamReader(path)) { Log.AtualizaArquivo <ENLog.MapaArquivos>(mapArq, ENLog.StatusProcessamentoArquivo.EmProcessamento, mapArq.Arquivo, "Em processamento de arquivo"); string descErro = String.Empty; string codConvenio = string.Empty; ENLog.TipoLog tpLog = ENLog.TipoLog.Informação; DataSet ds = new DataSet(); DataTable dt = new DataTable(); while (!sr.EndOfStream) { try { linhaAtual++; string linha = sr.ReadLine(); switch (linha.Substring(0, 1)) { case "0": codConvenio = linha.Substring(95, 10).TrimEnd(null); crtACSOIDTSCCabecalhoEN.Mapeia(linha, idArquivo).Insere(); break; case "1": dt.Rows.Add(crtACSOIDTSCDetalheEN.MapeiaTXTDet(linha, idArquivo, codConvenio, idEntidade, dt)); qtdCartoes++; break; case "9": crtACSOIDTSCRodapeEN.Mapeia(linha, idArquivo).Insere(); break; } } catch (Exception e) { tpLog = ENLog.TipoLog.Erro; descErro = "Erro ao processar arquivo Identificação Simplificada de Cartões"; this.InsereLog(mapArq, qtdCartoes, tpLog, descErro, string.Empty); throw; } } ds.Tables.Add(dt); InsereCartoes(ds, idArquivo, tpLog, mapArq, qtdCartoes, qtdCartoesErro); //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; //} //if (qtdCartoesErro > 0) //{ // qtdCartoes = qtdCartoes - qtdCartoesErro; // descErro = String.Format("Total de cartões com erro: {0}", qtdCartoesErro); // this.InsereLog(mapArq, qtdCartoes, ENLog.TipoLog.Informação, descErro, string.Empty); //} //descErro = String.Format("Total de cartões identificados: {0}", qtdCartoes); //this.InsereLog(mapArq, qtdCartoes, ENLog.TipoLog.Informação, descErro, string.Empty); PortadorBD.InsereNovoServico(idArquivo); } }