public bool Transferir(TransferenciaBancariaDTO dadosTransferencia) { try { Transacao.ExecutarEmTransacao(() => { Lancamentos lancamento = new Lancamentos(dadosTransferencia.ContaOrigem, dadosTransferencia.contaDestino, dadosTransferencia.Valor); ContaCorrente origem = _contaRepositorio.Buscar(dadosTransferencia.ContaOrigem); ContaCorrente destino = _contaRepositorio.Buscar(dadosTransferencia.contaDestino); if (origem == null || destino == null) { throw new ArgumentNullException(ValidationResource.ContaNaoExistente); } origem.Debitar(dadosTransferencia.Valor); origem.Lancamentos.Add(lancamento); destino.Creditar(dadosTransferencia.Valor); _contaRepositorio.Salvar(origem); _contaRepositorio.Salvar(destino); }); return(true); } catch (Exception e) { throw e; } }
public void Salvar(Conta entidade) { using (var uow = UoWFactory.Create()) { contaRepositorio.Salvar(entidade); uow.Commit(); } }