Пример #1
0
        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);
            }
Пример #3
0
    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);
    }
Пример #4
0
            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);
 }