Beispiel #1
0
        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();
            }
        }
Beispiel #2
0
        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();
            }
        }