コード例 #1
0
        public async Task Handle(EventContext <LancamentoProcessadoEvent> context)
        {
            var @event       = context.Event;
            var lancamentoId = @event.LancamentoId;
            var lancamento   = _lancamentos.FindById(lancamentoId);

            if (@event.Type == EventType.Failure)
            {
                lancamento.Situacao = SituacaoLancamento.Rejeitado;
                lancamento.MensagemProcessamento = @event.Exception.Message;
            }
            else
            {
                lancamento.Situacao = SituacaoLancamento.Processado;
            }
            _unitOfWork.Commit();
        }
コード例 #2
0
        public async Task Handle(CommandContext <ProcessarRecebimentoCommand> context)
        {
            var lancamento = _lancamentos.FindById(context.Command.LancamentoId);

            try
            {
                var consolidacao = _consolidacoes.FindAll(new Consolidacao.ByData(lancamento.Em)).FirstOrDefault();
                if (consolidacao == null)
                {
                    _consolidacoes.Add(new Consolidacao(lancamento.Em));
                }
                await _processarRecebimento.Apply(consolidacao, lancamento);

                await _eventBus.PublishAsync(new LancamentoProcessadoEvent(lancamento.Id));
            }
            catch (Exception e)
            {
                await _eventBus.PublishAsync(new LancamentoProcessadoEvent(lancamento.Id, e));
            }
            _unitOfWork.Commit();
        }