public IQueryable<Application> BuildSearchQuery(List<SearchParameter> parameters, IQueryable<Application> query) { var area = parameters.AreaOrDefault(); if (area.IsNotNull()) { if (area.ParameterValue.IsNotNullOrEmpty()) { return query.MatchesRequirement(RequirementType.Area, area.ParameterValue.ToUpper()); } } return query; }
public List<Property> Search(List<SearchParameter> searchParameters, Ordering order, Filtering filter) { var properties = from property in _propertiesContext.Properties.Active() .Include(x => x.Landlord) .Include(x => x.PropertyDetails) .Include(x => x.PropertyPhotos) select property; properties = _searchQueryFactory.GetQueries() .Aggregate(properties, (current, query) => query.BuildSearchQuery(searchParameters, current)); return properties.OrderProperties(order).Filter(filter).ToList().FilterByArea(searchParameters.AreaOrDefault()).ToList(); }
public IQueryable<Core.Objects.Property> BuildSearchQuery(List<SearchParameter> parameters, IQueryable<Core.Objects.Property> query) { var area = parameters.AreaOrDefault(); if (area.IsNotNull()) { if (area.ParameterValue.IsNotNullOrEmpty()) { return query.MatchesArea(area.ParameterValue.ToUpper()); } } return query; }