Beispiel #1
0
        public async Task <ContaCorrente> Obter(Guid contaId)
        {
            var entity = await context.Contas.FirstOrDefaultAsync(s => s.Id.Equals(contaId));

            if (entity == null)
            {
                throw new ContaNaoEncontradaException(contaId);
            }

            List <ITransacao> transacoes = new List <ITransacao>();

            var creditos = await this.ObterCreditos(entity.Id);

            foreach (var credito in creditos)
            {
                transacoes.Add(Credito.Carregar(credito.Id, credito.TransacaoId, credito.ContaId, credito.DataTransacao, credito.Valor));
            }

            var debitos = await this.ObterDebitos(entity.Id);

            foreach (var debito in debitos)
            {
                transacoes.Add(Debito.Carregar(debito.Id, debito.TransacaoId, debito.ContaId, debito.DataTransacao, debito.Valor));
            }

            transacoes.OrderBy(s => s.DataTransacao);

            LancamentoCollection transacaoCollection = new LancamentoCollection();

            transacaoCollection.Adicionar(transacoes);

            var conta = ContaCorrente.Carregar(entity.Id, entity.ClienteId, entity.NumeroAgencia, entity.NumeroConta, entity.DigitoConta, transacaoCollection);

            return(conta);
        }
Beispiel #2
0
        public async Task <IList <Debito> > ObterDebitos(Guid contaId)
        {
            var debitoEntities = await context.Debitos.Where(s => s.ContaId.Equals(contaId)).ToListAsync();

            List <Debito> debitos = new List <Debito>();

            if (debitoEntities != null)
            {
                foreach (var creditoEntity in debitoEntities)
                {
                    debitos.Add(Debito.Carregar(creditoEntity.Id, creditoEntity.TransacaoId, creditoEntity.ContaId, creditoEntity.DataTransacao, creditoEntity.Valor));
                }
            }
            return(debitos);
        }
        public void ConsegueCarregarUmObjetoDebito()
        {
            Guid     id            = Guid.NewGuid();
            Guid     transacaoId   = Guid.NewGuid();
            Guid     contaId       = Guid.NewGuid();
            DateTime dataTransacao = DateTime.UtcNow;
            double   valor         = 49.9;

            var debito = Debito.Carregar(id, transacaoId, contaId, dataTransacao, valor);

            Assert.Equal(id, debito.Id);
            Assert.Equal(transacaoId, debito.TransacaoId);
            Assert.Equal(contaId, debito.ContaId);
            Assert.Equal(dataTransacao, debito.DataTransacao);
            Assert.Equal <double>(valor, debito.Valor);
        }