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); }
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; } }