private SearchSettingsConfig InternalGetCurrentSearchConfig(SPWeb web, bool isWebLevel) { SearchSettingsConfig result = null; var serializer = new JavaScriptSerializer(); var propertyBagName = "SRCH_SB_SET_SITE"; if (isWebLevel) { propertyBagName = "SRCH_SB_SET_WEB"; } try { var rawSearchSettings = ConvertUtils.ToStringAndTrim(web.AllProperties[propertyBagName]); result = serializer.Deserialize <SearchSettingsConfig>(rawSearchSettings); // no setup -> an empty string gives NULL // create default one to push the setting if (result == null) { result = new SearchSettingsConfig(); } } catch (Exception) { } return(result); }
private void InternalSetCurrentSearchConfig(SPWeb web, SearchSettingsConfig searchSettings, bool isWebLevel) { var propertyBagName = "SRCH_SB_SET_SITE"; if (isWebLevel) { propertyBagName = "SRCH_SB_SET_WEB"; } var serializer = new JavaScriptSerializer(); web.AllProperties[propertyBagName] = serializer.Serialize(searchSettings); }
protected virtual void SetCurrentSearchConfigAtSiteLevel(CSOMModelHostBase modelHost, Web web, SearchSettingsConfig searchSettings) { InternalSetCurrentSearchConfig(modelHost, web, searchSettings, false); }
public override void DeployModel(object modelHost, DefinitionBase model) { var definition = model.WithAssertAndCast <SearchSettingsDefinition>("model", value => value.RequireNotNull()); SPWeb spObject = null; SearchSettingsConfig searchSettings = null; var searchCenterUrl = String.Empty; if (modelHost is SiteModelHost) { spObject = (modelHost as SiteModelHost).HostSite.RootWeb; searchSettings = GetCurrentSearchConfigAtSiteLevel(spObject); searchCenterUrl = GetSearchCenterUrlAtSiteLevel(spObject); } else if (modelHost is WebModelHost) { spObject = (modelHost as WebModelHost).HostWeb; searchSettings = GetCurrentSearchConfigAtWebLevel(spObject); searchCenterUrl = GetSearchCenterUrlAtWebLevel(spObject); } var assert = ServiceFactory.AssertService .NewAssert(definition, spObject) .ShouldNotBeNull(spObject); if (!string.IsNullOrEmpty(definition.SearchCenterUrl)) { assert.ShouldBeEqual((p, s, d) => { var srcProp = s.GetExpressionValue(m => m.SearchCenterUrl); var isValid = s.SearchCenterUrl == searchCenterUrl; return(new PropertyValidationResult { Tag = p.Tag, Src = srcProp, Dst = null, IsValid = isValid }); }); } else { assert.SkipProperty(m => m.SearchCenterUrl); } if (!string.IsNullOrEmpty(definition.UseCustomResultsPageUrl)) { assert.ShouldBeEqual((p, s, d) => { var srcProp = s.GetExpressionValue(m => m.UseCustomResultsPageUrl); var isValid = s.UseCustomResultsPageUrl == searchSettings.ResultsPageAddress; return(new PropertyValidationResult { Tag = p.Tag, Src = srcProp, Dst = null, IsValid = isValid }); }); } else { assert.SkipProperty(m => m.UseCustomResultsPageUrl); } if (definition.UseParentResultsPageUrl.HasValue) { assert.ShouldBeEqual((p, s, d) => { var srcProp = s.GetExpressionValue(m => m.UseParentResultsPageUrl); var isValid = s.UseParentResultsPageUrl.Value == searchSettings.Inherit; return(new PropertyValidationResult { Tag = p.Tag, Src = srcProp, Dst = null, IsValid = isValid }); }); } else { assert.SkipProperty(m => m.UseParentResultsPageUrl, "UseParentResultsPageUrl is null"); } if (definition.UseFirstSearchNavigationNode.HasValue) { } else { assert.SkipProperty(m => m.UseFirstSearchNavigationNode, "UseFirstSearchNavigationNode is null"); } }
protected virtual void SetCurrentSearchConfigAtSiteLevel(Web web, SearchSettingsConfig searchSettings) { InternalSetCurrentSearchConfig(web, searchSettings, false); }
protected virtual void SetCurrentSearchConfigAtWebLevel(SPWeb web, SearchSettingsConfig searchSettings) { InternalSetCurrentSearchConfig(web, searchSettings, true); }