Пример #1
0
        public EnvioOcorrenciasWS(IConfiguration config, ILogger logger, Spinner spinner)
        {
            _config      = config;
            _logger      = logger;
            _spinner     = spinner;
            saveFilePath = _config.GetSection("GeneralConfig").GetSection("logFilePath").Value;

            _parametrosServicoOmni = new ExpandoObject();
            _parametrosServicoOmni.CNPJ_SALASOLUTION    = _config.GetSection("ServicoOmni").GetSection("CNPJ_PARCEIRO_OMNI").Value;
            _parametrosServicoOmni.CODIGO_PARCEIRO_OMNI = _config.GetSection("ServicoOmni").GetSection("CODIGO_PARCEIRO_OMNI").Value;
            _parametrosServicoOmni.loginExterno         = _config.GetSection("ServicoOmni").GetSection("USUARIO_PARCEIRO_OMNI").Value;
            _parametrosServicoOmni.Agente     = _config.GetSection("ServicoOmni").GetSection("AGENTE_PARCEIRO_OMNI").Value;
            _parametrosServicoOmni.userProxy  = _config.GetSection("GeneralConfig").GetSection("userProxy").Value;
            _parametrosServicoOmni.senhaProxy = _config.GetSection("GeneralConfig").GetSection("senhaProxy").Value;

            _parametrosServicoOmni.quantidadeRegistroPorEtapa = _config.GetSection("GeneralConfig").GetSection("registrosPorEtapa").Value.ToInt();

            _clienteServicoOmni = ServicoOmniFacil.Instancia(_parametrosServicoOmni.CNPJ_SALASOLUTION, _parametrosServicoOmni.CODIGO_PARCEIRO_OMNI, _parametrosServicoOmni.loginExterno, _parametrosServicoOmni.Agente, _parametrosServicoOmni.userProxy, _parametrosServicoOmni.senhaProxy);
        }
Пример #2
0
        public void RegistrarOcorrencia(int us_id, DateTime dataInicio, DateTime dataFim)
        {
            IEnumerable <AcionamentoIntegracaoOmni> dadosOcorrencia = null;
            var nomeArquivo = "";
            List <Ocorrencia> Ocorrencias = new List <Ocorrencia>();
            string            codigoClienteParceiroAtual = string.Empty;

            try
            {
                _spinner.SetCursorSpinner(_logger, "Recuperando ocorrencias a serem enviadas");

                //Recupera dados das ocorrências a serem importadas para a omni.
                using (var dalAndamentoNegocial = new DAL.Acionamentos(_config))
                {
                    dadosOcorrencia = dalAndamentoNegocial.OcorrenciasParaEnvioWs(dataInicio, dataFim).ToList();
                }

                _spinner.SetCursorSpinner(_logger, "Gerando relatório contendo dados coletados para envio");

                GeradorArquivo.ListaParaCsv(dadosOcorrencia, nomeArquivo = $"{saveFilePath}\\{DateTime.Now:yyyyMMddHHmmss}.csv");

                _spinner.SetCursorSpinner(_logger, $"Relatório gerado com sucesso em : {nomeArquivo}");


                if (dadosOcorrencia.Any())
                {
                    _spinner.SetCursorSpinner(_logger, $"Iniciando envio de " + dadosOcorrencia.Count() + " registros");

                    IEnumerable <AcionamentoIntegracaoOmni> dados = null;

                    try
                    {
                        //TODO colocar no arquvo de configuracao a qunatidade de dados a serem enviados
                        while ((dados = GerarLista(dadosOcorrencia, _parametrosServicoOmni.quantidadeRegistroPorEtapa)).Count() > 0)
                        {
                            foreach (var ocorr in dados)
                            {
                                try
                                {
                                    if (_clienteServicoOmni.CodigoParceiro != _parametrosServicoOmni.CODIGO_PARCEIRO_OMNI)
                                    {
                                        codigoClienteParceiroAtual = _parametrosServicoOmni.CODIGO_PARCEIRO_OMNI;
                                        _clienteServicoOmni        = _clienteServicoOmni.ObterServico();
                                    }

                                    var ret = _clienteServicoOmni.IncluirOcorrencia(
                                        ocorr.contr_contrato
                                        , ocorr.at_reu_cod_externo
                                        , ocorr.us_login_externo
                                        , ocorr.cod_ocorr_omni
                                        , ocorr.andn_data_cadastro
                                        , ocorr.andn_andamento
                                        , ocorr.telefone
                                        , ocorr.cod_cliente_omni
                                        );

                                    Ocorrencia ocorrencia = GerarOcorrencia(us_id, ocorr, MontarMensagem(ocorr.andn_id, ret), (ret.erro?.Length ?? 0) == 0);
                                    Ocorrencias.Add(ocorrencia);
                                }
                                catch (Exception ex)
                                {
                                    _logger.LogDebug(" Ocorreu um erro: " + string.Format("IdOcorrencia: {0} | Erro: {1}", ocorr.andn_id, ex.Message));
                                }
                            }

                            _spinner.SetCursorSpinner(_logger, $"Registros enviados {dados.Count()}, de um total de {dadosOcorrencia.Count() + dados.Count()}, restam {dadosOcorrencia.Count()}");
                        }
                    }
                    finally
                    {
                        try
                        {
                            _spinner.SetCursorSpinner(_logger, "Finalizando o processamento");
                            if (Ocorrencias.Count > 0)
                            {
                                GeradorArquivo.ListaParaCsv(Ocorrencias, nomeArquivo.Replace(".csv", "resultado_processamento.csv"));

                                //Recupera dados das ocorrências a serem importadas para a omni.
                                using (var dalAndamentoNegocial = new DAL.Acionamentos(_config))
                                {
                                    dalAndamentoNegocial.RegistrarHistoricoOcorrencia(Ocorrencias);
                                }
                            }

                            _spinner.SetCursorSpinner(_logger, "Envio finalizado");
                        }
                        catch (Exception ex)
                        {
                            _logger.LogDebug($"Ocorreu um erro ao finalizar : {ex.Message}");
                            throw;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                _logger.LogDebug($" Ocorreu um erro: {ex.Message}");
                throw;
            }
            finally
            {
                dadosOcorrencia = null;
                Ocorrencias     = null;
            }
        }