/// <summary> /// Realiza uma nova requisição para um determinado end-point /// </summary> /// <param name="xml">String xml</param> /// <param name="idXml">Código do registro de Log</param> /// <param name="url">End-point da Api</param> /// <param name="token">Token autenticado.</param> public static void Enviar(string xml, int idXml, string url, Token token) { var xmlRetorno = string.Empty; var headers = ObterHeaders(token); var response = CriarRequest(url, headers, xml); if (response == null) { return; } xmlRetorno = response.Content.ReadAsStringAsync().Result; Log.GravarLog($"Registro id: {idXml} - cpf: {Parametros.CPFCertificado} - Statuscode: {response.StatusCode.ToString()}"); if (response.StatusCode != HttpStatusCode.OK) { SiscomexDAO.GravarInconsistencia(idXml, xmlRetorno); } if (response.StatusCode == HttpStatusCode.OK) { var retorno = XmlHelper.Deserializar(response.Content.ReadAsStringAsync().Result); if (retorno.Operacao.Mensagens.Count > 0) { SiscomexDAO.GravarRegistroEnviado(idXml); } } }
/// <summary> /// Realiza uma nova requisição GET para um determinado end-point /// </summary> /// <param name="idXml">Código do registro de Log</param> /// <param name="url">End-point da Api</param> /// <param name="token">Token autenticado</param> public static void Enviar(int idXml, string url, Token token) { Log.GravarLog($"Iniciando consulta para o id: {idXml} - cpf: {Parametros.CPFCertificado}"); var headers = ObterHeaders(token); var response = ""; try { response = CriarRequest(url, headers); } catch (Exception ex) { SiscomexDAO.GravarInconsistencia(idXml, ex.InnerException.Message); } if (string.IsNullOrEmpty(response)) { return; } var dadosResumidos = JsonConvert.DeserializeObject <DadosResumidos>(response); if (dadosResumidos == null) { return; } Log.GravarLog($"Registro id: {idXml} - Situação DUE: {dadosResumidos.situacaoDUE}"); SiscomexDAO.GravarDadosConsultaDUE(dadosResumidos, idXml); }
/// <summary> /// Realiza o envio dos registros /// </summary> public static void EnviarXml() { try { var _token = ObterToken(); if (_token.Valido()) { var listaXmlNaoEnviados = SiscomexDAO.ObterListaXmlNaoEnviados(); if (listaXmlNaoEnviados.Count == 0) { Log.GravarLog("Nenhum registro selecionado."); } foreach (var item in listaXmlNaoEnviados) { switch (item.Funcao) { case 1: EntregasConteineres.Enviar(item.Xml, item.Id, _token); break; case 2: EntregasDocumentoCarga.Enviar(item.Xml, item.Id, _token); break; case 3: RecepcoesNFF.Enviar(item.Xml, item.Id, _token); break; case 4: RecepcoesNFE.Enviar(item.Xml, item.Id, _token); break; case 5: RecepcoesConteineres.Enviar(item.Xml, item.Id, _token); break; case 6: RecepcoesDocumentoCarga.Enviar(item.Xml, item.Id, _token); break; case 7: ManifestacoesExportacao.Enviar(item.Xml, item.Id, _token); break; case 8: ConsultarDadosResumidos.Enviar(item.Xml, item.Id, _token); break; case 9: UnitilizarCarga.Enviar(item.Xml, item.Id, _token); break; case 10: CadastrarDUE.Enviar(item.Xml, item.Id, _token); break; } } } else { Log.GravarLog("O sistema não conseguiu autenticar na API Siscomex. O Token de acesso não foi gerado."); } } catch (Exception ex) { Log.GravarLog("Falha durante o processamento dos registros. " + ex.Message); } }