Example #1
0
        /// <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);
                }
            }
        }
Example #2
0
        /// <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);
        }
Example #3
0
        /// <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);
            }
        }