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