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