Пример #1
0
        /// <summary>
        /// Gets the root keyword for the given <see cref="P:taxonomyUri" />
        /// </summary>
        /// <param name="taxonomyUri">Taxonomy <see cref="T:TcmCDService.Tridion.TcmUri" /></param>
        /// <param name="taxonomyFilter"><see cref="T:TcmCDService.Contracts.TaxonomyFilter" /></param>
        /// <param name="taxonomyFilter"><see cref="T:TcmCDService.Contracts.TaxonomyFilter" /> to apply.</param>
        /// <returns><see cref="T:Tridion.ContentDelivery.Taxonomies.Keyword" /></returns>
        internal static Keyword GetKeywords(TcmUri taxonomyUri, Contracts.TaxonomyFilter taxonomyFilter, Contracts.TaxonomyFormatter taxonomyFormatter)
        {
            return(mInstance.ProcessItem(0, (factory) =>
            {
                TaxonomyFormatter formatter;

                switch (taxonomyFormatter)
                {
                case Contracts.TaxonomyFormatter.List:
                    formatter = new TaxonomyListFormatter();
                    break;

                case Contracts.TaxonomyFormatter.HierarchyRelink:
                    formatter = new TaxonomyHierarchyFormatter(true);
                    break;

                default:
                    formatter = new TaxonomyHierarchyFormatter();
                    break;
                }

                if (taxonomyFilter == null)
                {
                    return factory.GetTaxonomyKeywords(taxonomyUri, formatter);
                }
                else
                {
                    using (TaxonomyFilter filter = taxonomyFilter.ToTaxonomyFilter())
                    {
                        return factory.GetTaxonomyKeywords(taxonomyUri, filter, formatter);
                    }
                }
            }));
        }
Пример #2
0
        /// <summary>
        /// Converts a <see cref="TcmCDService.Contracts.TaxonomyFilter" /> to <see cref="T:Tridion.ContentDelivery.Taxonomies.TaxonomyFilter" />
        /// </summary>
        /// <param name="taxonomyFilter"><see cref="TcmCDService.Contracts.TaxonomyFilter" /></param>
        /// <returns><see cref="T:Tridion.ContentDelivery.Taxonomies.TaxonomyFilter" /> or null</returns>
        internal static TaxonomyFilter ToTaxonomyFilter(this Contracts.TaxonomyFilter taxonomyFilter)
        {
            if (taxonomyFilter != null)
            {
                CompositeFilter filter = new CompositeFilter();

                if (taxonomyFilter.FilterConcrete.HasValue || taxonomyFilter.FilterAbstract.HasValue)
                {
                    filter.AbstractKeywordFiltering(taxonomyFilter.FilterConcrete.GetValueOrDefault(false),
                                                    taxonomyFilter.FilterAbstract.GetValueOrDefault(false));
                }

                if (taxonomyFilter.DepthFilteringLevel.HasValue)
                {
                    filter.DepthFiltering(taxonomyFilter.DepthFilteringLevel.GetValueOrDefault(-1), (int)taxonomyFilter.DepthFilteringDirection);
                }

                if (taxonomyFilter.FilterHasChildren.HasValue || taxonomyFilter.FilterNavigable.HasValue)
                {
                    filter.PropertyKeywordFiltering(taxonomyFilter.FilterHasChildren.GetValueOrDefault(false),
                                                    taxonomyFilter.FilterNavigable.GetValueOrDefault(false));
                }

                return(filter);
            }

            return(null);
        }
Пример #3
0
 /// <summary>
 /// Gets the root keyword for the given <see cref="P:taxonomyUri" />
 /// </summary>
 /// <param name="taxonomyUri">Taxonomy <see cref="T:TcmCDService.Tridion.TcmUri" /></param>
 /// <param name="taxonomyFilter"><see cref="T:TcmCDService.Contracts.TaxonomyFilter" /> to apply.</param>
 /// <param name="taxonomyFormatter"><see cref="T:TcmCDService.Contracts.TaxonomyFormatter" /> to apply.</param>
 /// <returns>
 ///   <see cref="T:TcmCDService.Contracts.Keyword" />
 /// </returns>
 public static Contracts.Keyword GetKeywords(String taxonomyUri, Contracts.TaxonomyFilter taxonomyFilter, Contracts.TaxonomyFormatter taxonomyFormatter)
 {
     return(RemoteAPI.Execute <Contracts.Keyword>((client) =>
                                                  client.Service.Keywords(taxonomyUri, taxonomyFilter, taxonomyFormatter), taxonomyUri));
 }