public void Transferir(Tansferencia transferencia) { //TODO:Adicionar Regra de negocio aqui. var ContaOrigemExistente = _contaRepository.Buscar(x => x.NumeroConta == transferencia.ContaOrigem).FirstOrDefault(); var ContaDestinoExistente = _contaRepository.Buscar(x => x.NumeroConta == transferencia.ContaDestino).FirstOrDefault(); if (ContaOrigemExistente == null) { throw new Exception("Conta Origem não encontrada!"); } if (ContaOrigemExistente == null) { throw new Exception("Conta Destino não encontrada!"); } if ((ContaOrigemExistente.Saldo - transferencia.Valor) < 0) { throw new Exception("Conta Origem não tem Saldo para efetuar esta operação!"); } ContaOrigemExistente.Saldo = (ContaOrigemExistente.Saldo - transferencia.Valor); _contaRepository.Atualizar(ContaOrigemExistente); ContaDestinoExistente.Saldo = (ContaDestinoExistente.Saldo + transferencia.Valor); _contaRepository.Atualizar(ContaDestinoExistente); }
public IActionResult Transferir([FromBody] Tansferencia obj) { try { _contaService.Transferir(obj); var msg = string.Format("Banco Aval - Traferência Feita com sucesso."); var json = new { ContaOrigem = obj.ContaOrigem, msg = "Tranferência feita com sucesso!" }; return(StatusCode(StatusCodes.Status201Created, json)); } catch (Exception ex) { var msg = string.Format("Banco Aval - Falha na transferencia - Msg: {0} - StackTrace:{1}", ex.Message, ex.StackTrace); return(StatusCode(StatusCodes.Status500InternalServerError, msg)); } }