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(); }
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(); }