Beispiel #1
0
        public Operacoes Depositar(Operacoes operacao)
        {
            var validacao = new OperacoesValidadas(_operacoesRepositorio, _contaRepositorio);

            operacao = validacao.DepositarValidado(ref operacao);

            if (!operacao.Validacoes.Any())
            {
                operacao.Data = DateTime.Now;

                if (operacao.ContaCorrenteId == Guid.Empty)
                {
                    operacao.ContaCorrenteId = _contaRepositorio.Listar().FirstOrDefault().Id;
                }

                operacao = _operacoesRepositorio.Adicionar(operacao);

                var conta = _contaRepositorio.ObterPorId(operacao.ContaCorrenteId);
                conta.Saldo += operacao.Valor;

                _contaRepositorio.Atualizar(conta);
            }

            return(operacao);
        }
Beispiel #2
0
        private Operacoes SaldoValido(ref Operacoes operacoes)
        {
            if ((_contaRepositorio.ObterPorId(operacoes.ContaCorrenteId).Saldo - operacoes.Valor) < 0)
            {
                operacoes.Validacoes.Add(new ItemValidacao()
                {
                    NomePropriedade = "Valor",
                    Mensagem        = "O Valor informado ultrapassa o saldo disponível na conta."
                });
            }

            return(operacoes);
        }