public RetirarResponse Ejecutar(RetirarRequest request) { var cuenta = _unitOfWork.ServicioFinancieroRepository.FindFirstOrDefault(t => t.Numero == request.NumeroCuenta); if (cuenta != null) { var errors = cuenta.CanConsignar(request.Valor, request.Ciudad); if (errors.Count == 0) { cuenta.Consignar(request.Valor, request.Ciudad); } _unitOfWork.Commit(); return(new RetirarResponse() { Mensaje = $"Su Nuevo saldo es {cuenta.Saldo}." }); } else { return(new RetirarResponse() { Mensaje = $"Número de Cuenta No Válido." }); } }
public RetirarResponse Retirar(IServicioFinanciero servicioFinanciero, RetirarRequest request) { if (servicioFinanciero != null) { servicioFinanciero.Retirar(request.Valor); _unitOfWork.Commit(); return(new RetirarResponse() { Mensaje = $"Su Nuevo saldo es {servicioFinanciero.Saldo}." }); } else { return(new RetirarResponse() { Mensaje = $"Número de Cuenta No Válido." }); } }
public RetirarResponse Ejecutar(RetirarRequest request) { var cuenta = _unitOfWork.CuentaBancariaRepository.FindFirstOrDefault(t => t.Numero == request.NumeroCuenta); if (cuenta != null) { cuenta.Retirar(new Transaccion(request.Valor)); _unitOfWork.Commit(); return(new RetirarResponse() { Mensaje = $"Su Nuevo saldo es {cuenta.Saldo}." }); } else { return(new RetirarResponse() { Mensaje = $"Número de Cuenta No Válido." }); } }
public RetirarResponse Ejecutar(RetirarRequest request, string tipo) { switch (tipo) { case "CuentaBancaria": var cuenta = _unitOfWork.CuentaBancariaRepository.FindFirstOrDefault(t => t.Numero == request.Numero); return(Retirar(cuenta, request)); case "CDT": var cdt = _unitOfWork.DepositoATerminoRepository.FindFirstOrDefault(t => t.Numero == request.Numero); return(Retirar(cdt, request)); case "TarjetaCredito": var tarjetaCredito = _unitOfWork.TarjetaCreditoRepository.FindFirstOrDefault(t => t.Numero == request.Numero); return(Retirar(tarjetaCredito, request)); default: return(new RetirarResponse() { Mensaje = "Tipo Financiero No Válido." }); } }