示例#1
0
        protected override bool SendInternal(SI_CUSTO_ADICIONAL_FRETE_OUTRequest request, out SI_CUSTO_ADICIONAL_FRETE_OUTResponse response)
        {
            response = Channel.SI_CUSTO_ADICIONAL_FRETE_OUTAsync(request).GetAwaiter().GetResult();

            LoggerHelper.Info($"Rota = {request.MT_CUSTO_ADICIONAL_FRETE_HBSIS_Request.Integracao.NumeroRota} - " +
                              $"Status = {response.MT_CUSTO_ADICIONAL_FRETE_HBSIS_Response.Status} - " +
                              $"Mensagem = {response.MT_CUSTO_ADICIONAL_FRETE_HBSIS_Response.Mensagem}");

            bool isValid = !string.IsNullOrEmpty(response.MT_CUSTO_ADICIONAL_FRETE_HBSIS_Response.Status);

            if (!isValid)
            {
                CurrentLog.SetError(response.MT_CUSTO_ADICIONAL_FRETE_HBSIS_Response.Status, response);
            }

            return(isValid);
        }
        public void SendSync(TRequest request)
        {
            if (request == null)
            {
                throw new HBIntegrationException("Request not defined.");
            }

            if (CurrentLog == null)
            {
                CurrentLog = CreateLog(request);
            }

            if (!Config.Enabled)
            {
                return;
            }

            try
            {
                CurrentLog.SetSending();

                var response = default(TResponse);

                var isValid = SendInternal(request, out response);

                if (isValid)
                {
                    CurrentLog.SetSuccess(response);
                }
            }
            catch (Exception ex)
            {
                CurrentLog.SetError(ex.Message);
                LoggerHelper.Error(ex);
            }
            finally
            {
                CurrentLog.Retries++;
                CurrentLog.Save();
            }
        }