public GenericResponse retrieveUserBySearchCriteria(GenericRequest pRequest)
throws InvalidInputValueException {
List<UserDTO> theUserDetails = new ArrayList<UserDTO>();
SearchDTO aSearchDTO = new SearchDTO();
CustomFilter aFilter = new CustomFilter();
GenericResponse aResponse = new GenericResponse();
aSearchDTO = pRequest.getSearchDTO();
if (aSearchDTO != null) {
theUserDetails = userFactory.findUsersBySearchCriteria(aSearchDTO);
tryCalculateScoreForUsers(theUserDetails);
pRequest.setUserList(theUserDetails);
}
aFilter.filterUsers(theUserDetails, aSearchDTO);
if (theUserDetails != null && !theUserDetails.isEmpty()) {
aResponse.setUserList(theUserDetails);
aResponse.setResponseStatus(true);
}