protected void InternalSetSearchCenterUrl(CSOMModelHostBase modelHost, Web web, string url, bool isWebLevel)
        {
            var propertyBagName = "SRCH_ENH_FTR_URL_SITE";

            if (isWebLevel)
                propertyBagName = "SRCH_ENH_FTR_URL_WEB";

            if (!string.IsNullOrEmpty(url))
            {
                url = TokenReplacementService.ReplaceTokens(new TokenReplacementContext
                {
                    Context = modelHost,
                    Value = url
                }).Value;

                var props = web.AllProperties;
                props[propertyBagName] = url;
            }
        }
 protected virtual void SetSearchCenterUrlAtSiteLevel(CSOMModelHostBase modelHost, Web web, string url)
 {
     InternalSetSearchCenterUrl(modelHost, web, url, false);
 }
 protected virtual void SetCurrentSearchConfigAtWebLevel(CSOMModelHostBase modelHost, Web web, SearchSettingsConfig searchSettings)
 {
     InternalSetCurrentSearchConfig(modelHost, web, searchSettings, true);
 }
        private void InternalSetCurrentSearchConfig(
            CSOMModelHostBase modelHost,
            Web web,
            SearchSettingsConfig searchSettings, bool isWebLevel)
        {
            var propertyBagName = "SRCH_SB_SET_SITE";

            if (isWebLevel)
                propertyBagName = "SRCH_SB_SET_WEB";

            var serializer = new JavaScriptSerializer();

            var props = web.AllProperties;
            props[propertyBagName] = serializer.Serialize(searchSettings);
        }