Ejemplo n.º 1
0
        public Task <IEnumerable <FluxoCaixaOutput> > Handle(GetFluxoDeCaixaQuery query)
        {
            var consolidacoes = _consolidacoes
                                .FindAll(new Consolidacao.ByMes(query.Filter.Mes).And(new Consolidacao.ByAno(query.Filter.Ano)))
                                .Include(x => x.Pagamentos)
                                .Include(x => x.Recebimentos)
                                .ToList();
            var fluxoDeCaixa = consolidacoes.Select(c => c.MapTo <FluxoCaixaOutput>());

            return(Task.FromResult(fluxoDeCaixa.AsEnumerable()));
        }
Ejemplo n.º 2
0
        public async Task Handle(CommandContext <ConsolidarLancamentosCommand> context)
        {
            var data            = context.Command.Input.Data.ToLocalDateTime();
            var contaBancariaId = context.Command.Input.ContaBancariaId;
            var consolidacao    = _consolidacoes
                                  .FindAll(new Consolidacao.ByData(data).And(new Consolidacao.NaoProcessada())).FirstOrDefault();

            if (consolidacao != null)
            {
                var contaBancaria = _contas.FindById(contaBancariaId);
                await _consolidarLancamentos.Apply(consolidacao, contaBancaria);

                _unitOfWork.Commit();
            }
        }
Ejemplo n.º 3
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();
        }