public static Expression Create(TaxonomyManager taxonomyManager, params long[] taxonomyIds) { Expression expression = null; // Get taxonomy with a single call to Ektron: var taxonomyCriteria = new TaxonomyCriteria(); foreach (long taxonomyId in taxonomyIds) { taxonomyCriteria.AddFilter(TaxonomyProperty.Id, CriteriaFilterOperator.EqualTo, taxonomyId); } var taxonomyDataList = taxonomyManager.GetList(taxonomyCriteria); // Build taxonomy expression for search criteria: foreach (var taxonomyData in taxonomyDataList) { var rightExpression = SearchSolrProperty .CreateExactStringProperty(SearchContentProperty.TaxonomyCategory) .Contains(taxonomyData.Path); // "Contains" really means "StartsWith" expression = expression == null ? rightExpression : expression.Or(rightExpression); } return(expression); }
public void AddsToCriteriaFilter(string value) { var field = TaxonomyProperty.Path; var criteria = new TaxonomyCriteria(); var sut = new FilterTaxonomy(criteria, field); sut.Contains(value); Assert.AreEqual(1, criteria.FilterGroups.Count); Assert.AreEqual(field, criteria.FilterGroups[0].Filters[0].Field); Assert.AreEqual(value, criteria.FilterGroups[0].Filters[0].Value); }
private List <WebEventData> GetEventsItems(long calendarId, DateTime startUtc, DateTime endUtc) { var webEventApi = new Ektron.Cms.Content.Calendar.WebEventManager(Ektron.Cms.ObjectFactory.GetRequestInfoProvider().GetRequestInformation()); // Define the taxonomy you want TaxonomyCriteria criteria = new TaxonomyCriteria(); criteria.AddFilter(TaxonomyProperty.Path, CriteriaFilterOperator.EqualTo, TaxonomyPath); TaxonomyManager taxonomyManager = new TaxonomyManager(); List <TaxonomyData> taxonomyItemList = taxonomyManager.GetList(criteria); // Get all webEvents in the given taxonomy var webEvents = webEventApi.GetEventOccurrenceList(calendarId, startUtc, endUtc, taxonomyItemList.ConvertAll(IdsOnly)); return(webEvents); }
public void SetsReturnRecursiveChildrenPropertyToTrue() { var sut = new TaxonomyCriteria().Recursive(); Assert.IsTrue(sut.ReturnRecursiveChildren); }
/// <summary> /// Adds a filter option. /// </summary> /// <param name="criteria">The criteria to extend.</param> /// <param name="field">The field to filter on.</param> /// <returns>An instance of <see cref="FilterTaxonomy"/>, which further refines the operator.</returns> public static FilterTaxonomy FilteredBy(this TaxonomyCriteria criteria, TaxonomyProperty field) { return(new FilterTaxonomy(criteria, field)); }
/// <summary> /// Includes descendent taxonomy. /// </summary> /// <param name="criteria">The criteria to extend.</param> /// <returns>The updated criteria.</returns> public static TaxonomyCriteria Recursive(this TaxonomyCriteria criteria) { criteria.ReturnRecursiveChildren = true; return(criteria); }