Exemplo n.º 1
0
        private Result ProcessCache(CacheMessage message)
        {
            try
            {
                if (message == null)
                {
                    return(ResultBuilder.Warning("Mensagem inválida."));
                }

                MessageLogger.Received(message);

                //var cacher = Cachers.Actual[message.ContentType];

                //if (cacher == null) return ResultBuilder.Warning($"{message.ContentType}: Cacher não encontrado.");

                //cacher.StoreCache(message);

                ResultBuilder.Warning($"{message.ContentType}: Cacher não encontrado.");

                MessageLogger.Consumed(message);

                return(ResultBuilder.Success());
            }
            catch (Exception)
            {
                MessageLogger.Error(message);
                throw;
            }
        }
Exemplo n.º 2
0
        public virtual Result <TDto> ProcessMessage(TMessage message)
        {
            if (message == null)
            {
                return(ResultBuilder <TDto> .Warning("Mensagem incorreta."));
            }

            MessageLogger.Received(message);

            SaveContext(message);
            PreProcess(message);

            //// Criar e instanciar factory do Dapper para chama-lo no Program
            //using (FactoryProvider.CurrentFactory.GetDataContext())
            //{
            try
            {
                TDto dto = null;

                var result = ValidateMessage(message);

                var isSuccess = result.IsSuccess();

                if (isSuccess)
                {
                    //// Abrir Transação com o Dapper
                    //using (var tx = TransactionFactory.GetTransaction())
                    //{
                    result = Process(message);

                    // if (result.IsSuccess())
                    //   tx.Commit();
                    //}

                    isSuccess = result.IsSuccess();
                }

                if (isSuccess)
                {
                    if (Caches.Count > 0)
                    {
                        dto = ProcessDto(Caches);
                        dto.Send(message);
                    }

                    SendMessages(message);
                }

                MessageLogger.Consumed(message, isSuccess, result.MessageToString());

                return(ResultBuilder <TDto> .Return(result, dto));
            }
            catch (HBFlowException)
            {
                throw;
            }
            catch (Exception ex)
            {
                MessageLogger.Error(message);
                throw;
            }
        }