public void AddFacetedRefinersForTerm(SPSite site, FacetedNavigationInfo navigationInfo) { // Get the term var termItem = this.taxonomyService.GetTermForId(site, navigationInfo.Term.Id); // Flag the term set to use faceted navigation termItem.TermSet.SetCustomProperty("_Sys_Facet_IsFacetedTermSet", "True"); termItem.TermStore.CommitAll(); var termList = new List <Term>(); termList.Add(termItem); termList.AddRange(termItem.ReusedTerms); foreach (var term in termList) { var i = 0; var fullRefinementString = new List <string>(); var refinementConfig = new List <string>(); foreach (var refiner in navigationInfo.Refiners) { refinementConfig.Add("\"_Sys_Facet_RefinerConfig" + i + "\""); fullRefinementString.Add(refiner.RefinementString); var fp = CultureInfo.InvariantCulture; var sb = new List <string> { string.Format(fp, "\"sortBy\":{0}", Convert.ChangeType(refiner.SortBy, refiner.SortBy.GetTypeCode(), fp)), string.Format(fp, "\"sortOrder\":{0}", Convert.ChangeType(refiner.SortOrder, refiner.SortOrder.GetTypeCode(), fp)), string.Format(fp, "\"maxNumberRefinementOptions\":{0}", refiner.MaxNumberRefinementOptions), string.Format(fp, "\"propertyName\":\"{0}\"", refiner.ManagedPropertyName), string.Format(fp, "\"type\":\"{0}\"", refiner.RefinerType), string.Format(fp, "\"displayTemplate\":\"{0}\"", refiner.DisplayTemplateJsLocation), string.Format(fp, "\"displayName\":\"{0}\"", refiner.DisplayName), string.Format(fp, "\"useDefaultDateIntervals\":{0}", refiner.UseDefaultDateIntervals.ToString().ToLowerInvariant()), string.Format(fp, "\"aliases\":{0}", refiner.Alias), string.Format(fp, "\"refinerSpecStringOverride\":\"{0}\"", refiner.RefinerSpecStringOverride.ToLowerInvariant()), string.Format(fp, "\"intervals\":{0}", refiner.Intervals) }; term.SetCustomProperty("_Sys_Facet_RefinerConfig" + i, "{" + string.Join(",", sb.ToArray()) + "}"); i++; } term.SetCustomProperty("_Sys_Facet_FullRefinementString", string.Join(",", fullRefinementString.ToArray())); term.SetCustomProperty("_Sys_Facet_RefinementConfig", "[" + string.Join(",", refinementConfig.ToArray()) + "]"); term.TermStore.CommitAll(); } }
public void AddFacetedRefinersForTerm(SPSite site, FacetedNavigationInfo navigationInfo) { // Get the term var termItem = this.taxonomyService.GetTermForId(site, navigationInfo.Term.Id); // Flag the term set to use faceted navigation termItem.TermSet.SetCustomProperty("_Sys_Facet_IsFacetedTermSet", "True"); termItem.TermStore.CommitAll(); var termList = new List<Term>(); termList.Add(termItem); termList.AddRange(termItem.ReusedTerms); foreach (var term in termList) { var i = 0; var fullRefinementString = new List<string>(); var refinementConfig = new List<string>(); foreach (var refiner in navigationInfo.Refiners) { refinementConfig.Add("\"_Sys_Facet_RefinerConfig" + i + "\""); fullRefinementString.Add(refiner.RefinementString); var fp = CultureInfo.InvariantCulture; var sb = new List<string> { string.Format(fp, "\"sortBy\":{0}", Convert.ChangeType(refiner.SortBy, refiner.SortBy.GetTypeCode(), fp)), string.Format(fp, "\"sortOrder\":{0}", Convert.ChangeType(refiner.SortOrder, refiner.SortOrder.GetTypeCode(), fp)), string.Format(fp, "\"maxNumberRefinementOptions\":{0}", refiner.MaxNumberRefinementOptions), string.Format(fp, "\"propertyName\":\"{0}\"", refiner.ManagedPropertyName), string.Format(fp, "\"type\":\"{0}\"", refiner.RefinerType), string.Format(fp, "\"displayTemplate\":\"{0}\"", refiner.DisplayTemplateJsLocation), string.Format(fp, "\"displayName\":\"{0}\"", refiner.DisplayName), string.Format(fp, "\"useDefaultDateIntervals\":{0}", refiner.UseDefaultDateIntervals.ToString().ToLowerInvariant()), string.Format(fp, "\"aliases\":{0}", refiner.Alias), string.Format(fp, "\"refinerSpecStringOverride\":\"{0}\"", refiner.RefinerSpecStringOverride.ToLowerInvariant()), string.Format(fp, "\"intervals\":{0}", refiner.Intervals) }; term.SetCustomProperty("_Sys_Facet_RefinerConfig" + i, "{" + string.Join(",", sb.ToArray()) + "}"); i++; } term.SetCustomProperty("_Sys_Facet_FullRefinementString", string.Join(",", fullRefinementString.ToArray())); term.SetCustomProperty("_Sys_Facet_RefinementConfig", "[" + string.Join(",", refinementConfig.ToArray()) + "]"); term.TermStore.CommitAll(); } }