public ICollection <string> Efetuar(int Id, double valor) { var listaErros = new List <string>(); var conta = _contaClienteRepository.Find(Id); foreach (var spec in _regrasNegocio) { if (spec.IsSatisfiedBy(conta, valor)) { listaErros.Add(spec.Mensagem); } } if (listaErros.Count == 0) { conta.Saldo += valor; _contaClienteRepository.Update(conta); var lancamento = new Lancamento() { ContaClienteId = Id, TipoOperacao = TipoOperacao.EstornoDebito, Valor = valor }; _lancamentoRepository.Add(lancamento); } return(listaErros); }
public void CadastrarLancamento(LancamentoDTO dto) { Lancamento lancamento = Lancamento.Cadastrar(dto, lancamentoValidator); unitOfWork.BeginTransaction(); lancamentoRepository.Add(lancamento); unitOfWork.Commit(); }
public async Task <bool> Add(Lancamento lancamento) { if (!ExecutarValidacao(new LancamentoValidation(), lancamento)) { return(false); } await _lancamentoRepository.Add(lancamento); return(true); }
public async Task <Lancamento> AddLancamento(Lancamento lancamento) { if (await Validate(lancamento)) { lancamento.Id = Guid.NewGuid().ToString(); await _lancamentoRepository.Add(lancamento); Conta contaOrigem = await _contaService.GetConta(lancamento.ContaOrigemId); Conta contaDestino = await _contaService.GetConta(lancamento.ContaDestinoId); contaOrigem.Saldo -= lancamento.Valor; contaDestino.Saldo += lancamento.Valor; await _contaRepository.SaveChanges(); } return(lancamento); }