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); }
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); }