/// <summary> /// Verifica si la solicitud es valida segun los distintos evaluadores contenidos /// </summary> /// <param name="pSolicitud">Solicitud a Evaluar</param> /// <returns>Vercadero si la solicitud es valida</returns> public bool EsValida(SolicitudPrestamo pSolicitud) { IEnumerator<IEvaluador> enumerador = Evaluadores.GetEnumerator(); bool valida = true; while (valida && enumerador.MoveNext()) { valida = enumerador.Current.EsValida(pSolicitud); } return valida; }
public void EsValida_WithAntiguedadMenor_ReturnsFalse() { string iNombre = "Ramiro"; string iApellido = "Rivera"; int iCantidadCuotas = 12; double iMonto = 20000; double iSueldo = 5500; DateTime iFechaNac = new DateTime(1993, 07, 11); DateTime iFechaIng = DateTime.Today; Empleo iEmpleo = new Empleo(iSueldo, iFechaIng); Cliente iCliente = new Cliente(iNombre, iApellido, iFechaNac, iEmpleo); iCliente.TipoCliente = TipoCliente.NoCliente; SolicitudPrestamo iSolicitudPrestamo = new SolicitudPrestamo(iCliente, iMonto, iCantidadCuotas); GestorPrestamos iGestorPrestamos = new GestorPrestamos(); Assert.IsFalse(iGestorPrestamos.EsValida(iSolicitudPrestamo)); }
/// <summary> /// Verifica si la solicitud es valida segun el monto indicado /// </summary> /// <param name="pSolicitud">Solicitud a evaluar</param> /// <returns>Devuelve verdadero si la solicitud es valida</returns> bool IEvaluador.EsValida(SolicitudPrestamo pSolicitud) { return (pSolicitud.Monto <= iMontoMaximo); }
/// <summary> /// Valida una <see cref="SolicitudPrestamo"/> /// </summary> /// <param name="pMonto">Monto del prestamo solicitado</param> /// <param name="pCantidadCuotas">Numero de cuotas en las cuales se debera cancelar el prestamo</param> /// <returns>True si la solicitud es valida, False caso contrario</returns> public bool ValidarSolicitudPrestamo(double pMonto, int pCantidadCuotas) { SolicitudPrestamo lSolicitud = new SolicitudPrestamo(this.iCliente, pMonto, pCantidadCuotas); return (this.iGestorPrestamos.EsValida(lSolicitud)); }
/// <summary> /// Evalua si la edad del solicitante esta dentro de los parametros validos /// </summary> /// <param name="pSolicitud">Solicitud a Evaluar</param> /// <returns>Verdadero si la solicitud es valida, falso caso contrario</returns> bool IEvaluador.EsValida(SolicitudPrestamo pSolicitud) { int edad = ((DateTime.Today - pSolicitud.Cliente.FechaNacimiento).Days) / 365; return ((iEdadMinima <= edad) && (iEdadMaxima >= edad)); }
/// <summary> /// Verifica si la solicitud es valida segun la cantidad de cuotas maximas /// </summary> /// <param name="pSolicitud">Solicitud a evaluar</param> /// <returns>Devuelve verdadero si la solicitud es valida</returns> bool IEvaluador.EsValida(SolicitudPrestamo pSolicitud) { return (pSolicitud.CantidadCuotas <= iCantidadMaximaCuotas); }
/// <summary> /// Verifica si la solicitud es valida segun el sueldo que percibe el Cliente /// </summary> /// <param name="pSolicitud">Solicitud a evaluar</param> /// <returns>Devuelve verdadero si la solicitud es valida</returns> bool IEvaluador.EsValida(SolicitudPrestamo pSolicitud) { return (pSolicitud.Cliente.Empleo.Sueldo > iSueldoMinimo); }
/// <summary> /// Verifica si una solicitud es valida segun la antiguedad del Cliente /// </summary> /// <param name="pSolicitud">Solicitud a evaluar</param> /// <returns>Devuelve verdadero si la solicitud es valida</returns> bool IEvaluador.EsValida(SolicitudPrestamo pSolicitud) { int antiguedad = Math.Abs((DateTime.Today.Month - pSolicitud.Cliente.Empleo.FechaIngreso.Month) + 12 * (DateTime.Today.Year - pSolicitud.Cliente.Empleo.FechaIngreso.Year)); return antiguedad >= this.iAntiguedadMinima; }
/// <summary> /// Verifica si una solicitud es valida, invocando al evaluador correspondiente segun el tipo de cliente /// </summary> /// <param name="pSolicitud">Solicitud a evaluar</param> /// <returns>Verdadero si la solicitud es valida</returns> public bool EsValida(SolicitudPrestamo pSolicitud) { return EvaluadoresPorCliente[pSolicitud.Cliente.TipoCliente].EsValida(pSolicitud); }