public CrearCuentaAhorroResponse Ejecutar(CrearCuentaAhorroRequest request) { ServicioFinanciero cuenta = _unitOfWork.ServicioFinancieroRepository.FindFirstOrDefault(t => t.Numero == request.Numero); if (cuenta == null) { ServicioFinanciero cuentaNueva = new CuentaAhorro(); ///CuentaBancariaFactory().Create(request.TipoCuenta);//Debe ir un factory que determine que tipo de cuenta se va a crear cuentaNueva.Nombre = request.Nombre; cuentaNueva.Numero = request.Numero; cuentaNueva.CiudadDeCreacion = request.Ciudad; cuentaNueva.Saldo = request.Saldo; cuentaNueva.FechaCreacion = request.FechaCreacion; _unitOfWork.ServicioFinancieroRepository.Add(cuentaNueva); _unitOfWork.Commit(); return(new CrearCuentaAhorroResponse() { Mensaje = $"Se creó con exito la cuenta {cuentaNueva.Numero}" }); } else { return(new CrearCuentaAhorroResponse() { Mensaje = $"El número de cuenta ya existe" }); } }
private ServicioFinanciero InicializarServicioFinanciero(ServicioFinanciero servicioFinanciero, CrearServicioFinancieroRequest request) { servicioFinanciero.Nombre = request.Nombre; servicioFinanciero.Numero = request.Numero; servicioFinanciero.Ciudad = request.Ciudad; switch (request.TipoCuenta) { case (int)ServicioFinancieroEnum.CUENTA_DE_AHORROS: return(servicioFinanciero); case (int)ServicioFinancieroEnum.CUENTA_CORRIENTE: CuentaCorriente cuentaCorriente = (CuentaCorriente)servicioFinanciero; cuentaCorriente.CupoDeSobregiro = request.CupoDeSobregiro; return(cuentaCorriente); case (int)ServicioFinancieroEnum.CERTIFICADO_DE_DEPOSITO_A_TERMINO: CertificadoDeDepositoATermino cdt = (CertificadoDeDepositoATermino)servicioFinanciero; cdt.DiasDeTermino = request.DiasDeTermino; return(cdt); case (int)ServicioFinancieroEnum.TARJETA_DE_CREDITO: TarjetaDeCredito tarjetaDeCredito = (TarjetaDeCredito)servicioFinanciero; tarjetaDeCredito.ContratarCupo(request.CupoPreAprobado); return(tarjetaDeCredito); default: throw new InvalidOperationException(); } }
public CrearCuentaCorrienteResponse Ejecutar(CrearCuentaCorrienteRequest request) { ServicioFinanciero cuenta = _unitOfWork.ServicioFinancieroRepository.FindFirstOrDefault(t => t.Numero == request.Numero); if (cuenta == null) { CuentaCorriente cuentaCorriente = new CuentaCorriente(); cuentaCorriente.Numero = request.Numero; cuentaCorriente.Nombre = request.Nombre; cuentaCorriente.CiudadDeCreacion = request.Ciudad; cuentaCorriente.Saldo = request.Saldo; cuentaCorriente.TopeGiro = request.TopeGiro; cuentaCorriente.FechaCreacion = request.FechaCreacion; _unitOfWork.ServicioFinancieroRepository.Add(cuentaCorriente); _unitOfWork.Commit(); return(new CrearCuentaCorrienteResponse() { Mensaje = $"Se creó con exito la cuenta {cuentaCorriente.Numero}" }); } else { return(new CrearCuentaCorrienteResponse() { Mensaje = $"El número de cuenta ya exite" }); } }
public CrearServicioFinancieroResponse Ejecutar(CrearServicioFinancieroRequest request) { ServicioFinanciero cuenta = _unitOfWork.CuentaBancariaRepository.FindFirstOrDefault(t => t.Numero == request.Numero); if (cuenta == null) { try { ServicioFinanciero cuentaNueva = (ServicioFinanciero)servicioFinancieroFactory.GetServicioFinanciero(request.TipoCuenta); //Debe ir un factory que determine que tipo de cuenta se va a crear cuentaNueva = InicializarServicioFinanciero(cuentaNueva, request); _unitOfWork.CuentaBancariaRepository.Add(cuentaNueva); _unitOfWork.Commit(); return(new CrearServicioFinancieroResponse() { Mensaje = $"Se creó con exito la cuenta {cuentaNueva.Numero}." }); } catch (System.Exception) { return(new CrearServicioFinancieroResponse() { Mensaje = $"El tipo de servicio eligido, no existe" }); } } else { return(new CrearServicioFinancieroResponse() { Mensaje = $"El número de cuenta ya exite" }); } }
public CrearCertificadoDepositoTerminoServiceResponse Ejecutar(CrearCertificadoDepositoTerminoServiceRequest request) { ServicioFinanciero cuenta = _unitOfWork.ServicioFinancieroRepository.FindFirstOrDefault(t => t.Numero == request.Numero); if (cuenta == null) { CertificadoDepositoATermino cdt = new CertificadoDepositoATermino(); cdt.Numero = request.Numero; cdt.Nombre = request.Nombre; cdt.CiudadDeCreacion = request.Ciudad; cdt.Saldo = request.Saldo; cdt.TasaEfectivaAnual = request.TasaEfectivaAnual; cdt.TerminoDefinido = request.TerminoDefinido; cdt.FechaCreacion = request.FechaCreacion; _unitOfWork.ServicioFinancieroRepository.Add(cdt); _unitOfWork.Commit(); return(new CrearCertificadoDepositoTerminoServiceResponse() { Mensaje = $"Se creo con Exito el Servicio Finaciero {cdt.Numero}." }); } else { return(new CrearCertificadoDepositoTerminoServiceResponse() { Mensaje = $"El Servicio Financiero {request.Numero} ya existe" }); } }