예제 #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);
        }
예제 #2
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);
    }