private void EnviarInspecoes(IEnumerable <InspecaoModelServico> inspecoes) { var lista = new List <InspecaoCsvModel>(); foreach (var item in inspecoes) { var inspecaoModelServico = new InspecaoCsvModel { CodigoCipp = item.CodigoCipp, CodigoOia = item.CodigoOia, PlacaLicenca = item.Placa, NumeroEquipamento = item.Equipamento, DataInspecao = item.DataInspecao }; lista.Add(inspecaoModelServico); } if (lista.Count > 0) { _csv.CriarArquivoInspecoesAnexo(lista); } else { _enviar.EnviarEmail(Configurations.EmailAdministrador(), _listExcecao, ""); } }
private void DownloadInspecao(IntegracaoInfos ftpInfo, string diretorioLocal, string diretorioRemoto, string usuario) { var inspecao = new InspecaoCsvModel(); try { _descompactar.ExcluirArquivoCasoExista(diretorioLocal, diretorioRemoto); DeletarDiretorioLocalInspecao(diretorioLocal); if (!DownloadArquivo(diretorioRemoto, diretorioLocal, ftpInfo)) { return; } if (!_descompactar.DescompactarArquivo(diretorioLocal, diretorioRemoto)) { return; } inspecao = _csv.ObterDadosInspecao(diretorioLocal, ftpInfo); if (inspecao.Excecao == null) { if (GravarInspecaoObtidaNoArquivoCsv(inspecao, diretorioLocal)) { if (!GravarHistoricoDownload(diretorioRemoto, usuario)) { return; } } ExcluirArquivoCompactadoECsv(diretorioLocal, diretorioRemoto); } ExcluirArquivoCompactadoECsv(diretorioLocal, diretorioRemoto); if (inspecao.Excecao != null) { _listExcecao.Add(inspecao.Excecao.Mensagem); } } catch (Exception e) { if (inspecao.Excecao == null) { var erro = new InspecoesGravadasModelServico { Excecao = new ExcecaoService { ExisteExcecao = true, Mensagem = string.Format(e.Message) } }; _listExcecao.Add(erro.Excecao.Mensagem); } else { _listExcecao.Add(e.Message); } } }
public static InspecaoModelServico ConverterParaModeloServico(InspecaoCsvModel value) { if (value == null) { return(new InspecaoModelServico()); } return(new InspecaoModelServico { CodigoCipp = value.CodigoCipp, CodigoOia = value.CodigoOia, Placa = value.PlacaLicenca, Equipamento = value.NumeroEquipamento, DataInspecao = value.DataInspecao.Date }); }
private bool GravarInspecaoObtidaNoArquivoCsv(InspecaoCsvModel inspecaoCsv, string diretorioLocal) { if (inspecaoCsv.Excecao != null && inspecaoCsv.Excecao.ExisteExcecao) { _listExcecao.Add(inspecaoCsv.Excecao.Mensagem); DeletarDiretorioLocalInspecao(diretorioLocal); return(false); } var inspecao = Conversao.ConverterParaModeloServico(inspecaoCsv); var result = AddInspecao(Conversao.ConverterParaDominio(inspecao)); if (result) { _listaInspecoesParaEnvio.Add(inspecao); } return(result); }
private InspecaoCsvModel ObterInspecao(string inputLine, IntegracaoInfos ftpInfo) { try { DateTime dDate; string format; CultureInfo provider = CultureInfo.InvariantCulture; format = "yyyyMMdd"; string inputLineWithoutExtraCommas = ReplaceDelimitersWithinQuotes(inputLine); _inputColumns = inputLineWithoutExtraCommas.Split(',').ToList(); var inspecao = new InspecaoCsvModel(); if (_inputColumns.Count == 5) { for (var i = 0; i < _inputColumns.Count;) { inspecao.CodigoOia = ftpInfo.DiretorioInspecaoLocal; if (!string.IsNullOrEmpty(_inputColumns[1])) { inspecao.CodigoCipp = _inputColumns[1]; } else { return(new InspecaoCsvModel { Excecao = new ExcecaoCsv { ExisteExcecao = true, Mensagem = string.Format(MensagemNegocio.CodidoCippNaoInformado) } }); } if (!string.IsNullOrEmpty(_inputColumns[2])) { if (_inputColumns[2].Length > 6) { inspecao.PlacaLicenca = _inputColumns[2]; } else { inspecao.PlacaLicenca = _inputColumns[2].ToString(); return(new InspecaoCsvModel { Excecao = new ExcecaoCsv { ExisteExcecao = true, Mensagem = string.Format(MensagemNegocio.PlacaNaoExiste, inspecao.PlacaLicenca, inspecao.CodigoCipp, inspecao.CodigoOia) } }); } } else { return(new InspecaoCsvModel { Excecao = new ExcecaoCsv { ExisteExcecao = true, Mensagem = string.Format(MensagemNegocio.PlacaNaoInformada, inspecao.CodigoCipp, inspecao.CodigoOia) } }); } if (!string.IsNullOrEmpty(_inputColumns[3])) { inspecao.NumeroEquipamento = _inputColumns[3]; } else { return(new InspecaoCsvModel { Excecao = new ExcecaoCsv { ExisteExcecao = true, Mensagem = string.Format(MensagemNegocio.NumeroDoEquipamentoNaoInformado, inspecao.CodigoCipp, ftpInfo.DiretorioInspecaoLocal) } }); } if (!string.IsNullOrEmpty(_inputColumns[4])) { try { if (DateTime.TryParseExact(_inputColumns[4], "ddMMyyyy", provider, DateTimeStyles.None, out dDate) || DateTime.TryParseExact(_inputColumns[4], format, provider, DateTimeStyles.None, out dDate)) { inspecao.DataInspecao = dDate; } else { DateTime dt = DateTime.Parse(_inputColumns[4]); } } catch { return(new InspecaoCsvModel { Excecao = new ExcecaoCsv { ExisteExcecao = true, Mensagem = string.Format(MensagemNegocio.DataComFormatoInvalido, inspecao.CodigoCipp, inspecao.CodigoOia) } }); } } else { return(new InspecaoCsvModel { Excecao = new ExcecaoCsv { ExisteExcecao = true, Mensagem = string.Format(MensagemNegocio.DataNaoInformada, inspecao.CodigoCipp) } }); } break; } return(inspecao); } return(new InspecaoCsvModel { Excecao = new ExcecaoCsv { ExisteExcecao = true, Mensagem = string.Format(MensagemNegocio.ArquivoCSVForaDeFormatacao, ftpInfo.DiretorioInspecaoLocal) } }); } catch (ExcecaoCsv e) { throw new Exception($"Erro ao obter dados da Inspeção. Exceção {e.Mensagem}"); } }
private void DownloadInspecaoAutomatica(IntegracaoInfos ftpInfo, IEnumerable <string> diretorios) { var diretorioLocal = string.Empty; var diretoriosValidos = new List <string>(); var inspecao = new InspecaoCsvModel(); if (diretorios != null) { diretoriosValidos = ObterSomenteDiretoriosValidos(diretorios); } foreach (var item in diretoriosValidos) { try { diretorioLocal = ObterDiretorioLocal(ftpInfo.DiretorioInspecaoLocal, item); _descompactar.ExcluirArquivoCasoExista(diretorioLocal, item); DeletarDiretorioLocalInspecao(diretorioLocal); if (!DownloadArquivo(item, diretorioLocal, ftpInfo)) { continue; } if (!_descompactar.DescompactarArquivo(diretorioLocal, item)) { continue; } inspecao = _csv.ObterDadosInspecao(diretorioLocal, ftpInfo); if (inspecao.Excecao == null) { if (GravarInspecaoObtidaNoArquivoCsv(inspecao, diretorioLocal)) { if (!GravarHistoricoDownload(item, "Rotina Automática")) { continue; } } } ExcluirArquivoCompactadoECsv(diretorioLocal, item); if (inspecao.Excecao != null) { _listLog.Add(inspecao.Excecao.Mensagem); _listExcecao.Add(inspecao.Excecao.Mensagem); } } catch (Exception e) { if (inspecao.Excecao == null) { var erro = new InspecoesGravadasModelServico { Excecao = new ExcecaoService { ExisteExcecao = true, Mensagem = string.Format(e.Message) } }; _listLog.Add(inspecao.Excecao.Mensagem); _listExcecao.Add(erro.Excecao.Mensagem); } else { _listLog.Add(e.Message); _listExcecao.Add(e.Message); } } } if (_listLog.Any()) { try { if (ftpInfo.TipoIntegracao == 1) { _ftp.CreateDirectory(ftpInfo); } else { _sftp.CreateDirectory(ftpInfo); } EscreverArquivoDeLog(_listLog, ftpInfo); _listLog.Clear(); } catch (Exception e) { _listExcecao.Add(e.Message); _listLog.Clear(); } } }