private ResultSearchCriteriaContract GetFilteredResultSearchCriterias(IList <SearchCriteriaContract> searchCriterias) { ResultRestrictionCriteriaContract resultRestrictionCriteriaContract = null; ResultCriteriaContract resultCriteriaContract = null; RegexCriteriaBuilder.ConvertWildcardToRegex(searchCriterias); var filteredCriterias = new List <SearchCriteriaContract>(); foreach (var searchCriteriaContract in searchCriterias) { if (m_searchCriteriaDirector.IsCriteriaSupported(searchCriteriaContract)) { filteredCriterias.Add(RegexCriteriaBuilder.ConvertToRegexCriteria(searchCriteriaContract)); } else if (searchCriteriaContract.Key == CriteriaKey.ResultRestriction) { resultRestrictionCriteriaContract = (ResultRestrictionCriteriaContract)searchCriteriaContract; } else if (searchCriteriaContract.Key == CriteriaKey.Result) { resultCriteriaContract = (ResultCriteriaContract)searchCriteriaContract; } } return(new ResultSearchCriteriaContract { ConjunctionSearchCriterias = filteredCriterias, ResultSpecifications = resultCriteriaContract, ResultBooks = resultRestrictionCriteriaContract != null ? resultRestrictionCriteriaContract.ResultBooks : null, }); }
private void AdjustStartIndexes(ResultCriteriaContract resultCriteriaContract) { if (resultCriteriaContract != null) { if (resultCriteriaContract.Start.HasValue) { resultCriteriaContract.Start++; } if (resultCriteriaContract.HitSettingsContract != null && resultCriteriaContract.HitSettingsContract.Start.HasValue) { resultCriteriaContract.HitSettingsContract.Start++; } } }
private FilteredCriterias FilterSearchCriterias(IList <SearchCriteriaContract> searchCriterias) { ResultCriteriaContract resultCriteria = null; var nonMetadataCriterias = new List <SearchCriteriaContract>(); var metadataCriterias = new List <SearchCriteriaContract>(); var conjunction = new List <SearchCriteriaQuery>(); var metadataParameters = new Dictionary <string, object>(); foreach (var searchCriteriaContract in searchCriterias) { if (m_searchCriteriaDirector.IsCriteriaSupported(searchCriteriaContract)) { var criteriaQuery = m_searchCriteriaDirector.ProcessCriteria(searchCriteriaContract, metadataParameters); conjunction.Add(criteriaQuery); metadataCriterias.Add(searchCriteriaContract); } else { nonMetadataCriterias.Add(searchCriteriaContract); if (searchCriteriaContract.Key == CriteriaKey.Result) { resultCriteria = (ResultCriteriaContract)searchCriteriaContract; } } } return(new FilteredCriterias { ResultCriteria = resultCriteria, MetadataParameters = metadataParameters, NonMetadataCriterias = nonMetadataCriterias, MetadataCriterias = metadataCriterias, ConjunctionQuery = conjunction }); }