private string GenerateRouteTemplate(ISet <Guid> taxonomiesForType)
        {
            string routeTemplate = string.Empty;

            var taxonomies = TaxonomyManager.GetTaxonomiesCache();

            if (taxonomies.Count() > 0)
            {
                var taxonomyNames = new List <string>();
                foreach (var taxonomy in taxonomies)
                {
                    if (taxonomiesForType != null && !taxonomiesForType.Contains(taxonomy.Id))
                    {
                        continue;
                    }

                    if (taxonomy.Id == TaxonomyManager.TagsTaxonomyId)
                    {
                        taxonomyNames.Add("tag");
                    }
                    else if (taxonomy.Id == TaxonomyManager.CategoriesTaxonomyId)
                    {
                        taxonomyNames.Add("category");
                    }
                    else
                    {
                        taxonomyNames.Add(taxonomy.Name.ToLowerInvariant());
                    }
                }
                routeTemplate = string.Join(",", taxonomyNames);
            }

            return(routeTemplate);
        }
示例#2
0
        private void RegisterTaxonomyRoutes()
        {
            var taxonomies = TaxonomyManager.GetTaxonomiesCache();

            if (taxonomies.Count() > 0)
            {
                foreach (var taxonomy in taxonomies)
                {
                    var taxonomyName = this.GetTaxonomyName(taxonomy.Id, taxonomy.Name);
                    ObjectFactory.Container.RegisterType <IRouteParamResolver, TaxonParamResolver>(taxonomyName, new InjectionConstructor(taxonomyName));
                }
            }
        }
示例#3
0
        private ITaxonomyProxy GetTaxonomy(string taxonomyName)
        {
            if (taxonomyName.Equals("category"))
            {
                taxonomyName = "Categories";
            }
            else if (taxonomyName.Equals("tag"))
            {
                taxonomyName = "Tags";
            }

            return(TaxonomyManager.GetTaxonomiesCache().FirstOrDefault(t => t.Name.Equals(taxonomyName, StringComparison.OrdinalIgnoreCase)));
        }