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