Ejemplo n.º 1
0
        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, "");
            }
        }
Ejemplo n.º 2
0
        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);
                }
            }
        }
Ejemplo n.º 3
0
        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
            });
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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}");
            }
        }
Ejemplo n.º 6
0
        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();
                }
            }
        }