public PolizaSearchingFields GetSearchingFields(int?polizaId, string matricula, string dniCliente, string telefonoCliente, string fechaInicio, string fechaFinal, string estadoPoliza) { PolizaSearchingFields output = new PolizaSearchingFields() { FechaInicio = DateTime.Parse(fechaInicio.Trim(), CultureInfo.GetCultureInfo("es-ES")), FechaFinal = DateTime.Parse(fechaFinal.Trim(), CultureInfo.GetCultureInfo("es-ES")), SearchingParam = PolizaSearchingParam.empty }; if (estadoPoliza == "0") { output.EstadoPoliza = EstadoPolizaParam.noActivo; } if (estadoPoliza == "1") { output.EstadoPoliza = EstadoPolizaParam.activo; } if (estadoPoliza == "2") { output.EstadoPoliza = EstadoPolizaParam.todos; } if (polizaId != null) { output.SearchingParam = PolizaSearchingParam.polizaId; output.PolizaId = (int)polizaId; } if (matricula.IsNullOrWhiteSpace() == false) { output.SearchingParam = PolizaSearchingParam.matricula; output.Value = matricula.Trim().ToUpperInvariant(); } if (dniCliente.IsNullOrWhiteSpace() == false) { output.SearchingParam = PolizaSearchingParam.dniCliente; output.Value = dniCliente.Trim().ToUpperInvariant(); } if (telefonoCliente.IsNullOrWhiteSpace() == false) { output.SearchingParam = PolizaSearchingParam.telefonoCliente; output.Value = telefonoCliente.Trim(); } return(output); }
/// <summary> /// Búsqueda por parámetros. /// Filtra por los parámetros que no están vacíos , /// busca coincidencias por: /// Parámetro /// + estado Póliza ( 0=> no activa , 1 => activa , 2=> todos) /// + fecha de Alta de la póliza (rango de fechas comprendido entre FechaInicio/FechaFinal) /// </summary> /// <param name="searchingFields"></param> /// <returns>Lista de gestion pólizas coincidentes (la última creada de cada póliza coincidente ) </returns> public List <GestionPoliza> SearchPolizas(PolizaSearchingFields searchingFields) { List <GestionPoliza> output = new List <GestionPoliza>(); // Fecha Alta + Estado (resto de campos vacíos). if (searchingFields.SearchingParam == PolizaSearchingParam.empty) { output = unitOfWork.GestionPoliza.GetLastGestionesPolizaWithCliente(searchingFields.FechaInicio, searchingFields.FechaFinal, (int)searchingFields.EstadoPoliza).ToList(); return(output); } // Póliza Id if (searchingFields.SearchingParam == PolizaSearchingParam.polizaId) { GestionPoliza gestionPoliza = unitOfWork.GestionPoliza.GetLastGestionPolizaWithClienteBy(searchingFields.PolizaId); if (gestionPoliza != null) { output.Add(gestionPoliza); } return(output); } // Fecha Alta + Estado + Matrícula que aparezca en cualquiera de sus gestionPoliza. if (searchingFields.SearchingParam == PolizaSearchingParam.matricula) { output = unitOfWork.GestionPoliza.GetLastGestionesPolizaWithClienteByMatricula(searchingFields.FechaInicio, searchingFields.FechaFinal, (int)searchingFields.EstadoPoliza, searchingFields.Value).ToList(); return(output); } // Fecha Alta + Estado + NIF / NIE. if (searchingFields.SearchingParam == PolizaSearchingParam.dniCliente) { output = unitOfWork.GestionPoliza.GetLastGestionesPolizaWithClienteByDni(searchingFields.FechaInicio, searchingFields.FechaFinal, (int)searchingFields.EstadoPoliza, searchingFields.Value).ToList(); return(output); } // Fecha Alta + Estado + Teléfono. if (searchingFields.SearchingParam == PolizaSearchingParam.telefonoCliente) { output = unitOfWork.GestionPoliza.GetLastGestionesPolizaWithClienteByTelefono(searchingFields.FechaInicio, searchingFields.FechaFinal, (int)searchingFields.EstadoPoliza, searchingFields.Value).ToList(); return(output); } // Si no hay ningún resultado coincidente, devuelve una lista vacía. return(output); }