//[SampleMetadataTag(Name = BuiltInTagNames.SampleHidden)] public void CanDeployWebmasterPageSettings() { // BuiltInMasterPageDefinitions class could be used to refer OOTB master pages // BuiltInMasterPageDefinitions.Seattle // BuiltInMasterPageDefinitions.Oslo // BuiltInMasterPageDefinitions.Minimal var masterPageSettings = new MasterPageSettingsDefinition { // both should be site relative URLs SiteMasterPageUrl = "/_catalogs/masterpage/oslo.master", SystemMasterPageUrl = "/_catalogs/masterpage/oslo.master" }; var model = SPMeta2Model.NewWebModel(web => { web.AddMasterPageSettings(masterPageSettings); }); DeployModel(model); }
public static ModelNode AddMasterPageSettings(this ModelNode model, MasterPageSettingsDefinition definition, Action <ModelNode> action) { return(model.AddDefinitionNode(definition, action)); }
public static ModelNode AddMasterPageSettings(this ModelNode model, MasterPageSettingsDefinition definition) { return(AddMasterPageSettings(model, definition, null)); }
public static TModelNode AddMasterPageSettings <TModelNode>(this TModelNode model, MasterPageSettingsDefinition definition, Action <MasterPageSettingsModelNode> action) where TModelNode : ModelNode, IWebModelNode, new() { return(model.AddTypedDefinitionNode(definition, action)); }
public static TModelNode AddMasterPageSettings <TModelNode>(this TModelNode model, MasterPageSettingsDefinition definition) where TModelNode : ModelNode, IWebModelNode, new() { return(AddMasterPageSettings(model, definition, null)); }
private void DeployMasterPageSettings(object modelHost, WebModelHost webModelHost, MasterPageSettingsDefinition masterPageSettings) { var site = webModelHost.HostSite; var web = webModelHost.HostWeb; var sContext = site.Context; sContext.Load(site, s => s.ServerRelativeUrl); sContext.ExecuteQueryWithTrace(); var siteRelativeUrl = site.ServerRelativeUrl; TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "Resolving server relative URL: [{0}]", siteRelativeUrl); InvokeOnModelEvent(this, new ModelEventArgs { CurrentModelNode = null, Model = null, EventType = ModelEventType.OnProvisioning, Object = web, ObjectType = typeof(Web), ObjectDefinition = masterPageSettings, ModelHost = modelHost }); if (!string.IsNullOrEmpty(masterPageSettings.SiteMasterPageUrl)) { TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "Setting web.MasterUrlL: [{0}]", masterPageSettings.SiteMasterPageUrl); web.MasterUrl = UrlUtility.CombineUrl(siteRelativeUrl, masterPageSettings.SiteMasterPageUrl); } if (!string.IsNullOrEmpty(masterPageSettings.SystemMasterPageUrl)) { TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "Setting web.CustomMasterUrl: [{0}]", masterPageSettings.SystemMasterPageUrl); web.CustomMasterUrl = UrlUtility.CombineUrl(siteRelativeUrl, masterPageSettings.SystemMasterPageUrl); } if (!string.IsNullOrEmpty(masterPageSettings.SiteMasterPageUrl) || !string.IsNullOrEmpty(masterPageSettings.SystemMasterPageUrl)) { InvokeOnModelEvent(this, new ModelEventArgs { CurrentModelNode = null, Model = null, EventType = ModelEventType.OnProvisioned, Object = web, ObjectType = typeof(Web), ObjectDefinition = masterPageSettings, ModelHost = modelHost }); TraceService.Verbose((int)LogEventId.ModelProvisionCoreCall, "Calling web.Update()"); web.Update(); web.Context.ExecuteQueryWithTrace(); } else { InvokeOnModelEvent(this, new ModelEventArgs { CurrentModelNode = null, Model = null, EventType = ModelEventType.OnProvisioned, Object = web, ObjectType = typeof(Web), ObjectDefinition = masterPageSettings, ModelHost = modelHost }); } }
private void DeployMasterPageSettings(object modelHost, WebModelHost webModelHost, MasterPageSettingsDefinition masterPageSettings) { var site = webModelHost.HostSite; var web = webModelHost.HostWeb; var sContext = site.Context; sContext.Load(site, s => s.ServerRelativeUrl); sContext.ExecuteQueryWithTrace(); var siteRelativeUrl = site.ServerRelativeUrl; TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "Resolving server relative URL: [{0}]", siteRelativeUrl); InvokeOnModelEvent(this, new ModelEventArgs { CurrentModelNode = null, Model = null, EventType = ModelEventType.OnProvisioning, Object = web, ObjectType = typeof(Web), ObjectDefinition = masterPageSettings, ModelHost = modelHost }); // TODO, https://github.com/SubPointSolutions/spmeta2/issues/761 // re-implement with native prop bag to suport SP2010 // SP2010 CSOM does not have CustomMasterUrl / MasterUrl props #if !NET35 if (!string.IsNullOrEmpty(masterPageSettings.SiteMasterPageUrl)) { var url = ResolveUrlWithTokens(webModelHost, masterPageSettings.SiteMasterPageUrl); TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "Setting web.MasterUrl: [{0}]", url); web.CustomMasterUrl = UrlUtility.CombineUrl(siteRelativeUrl, url); } if (!string.IsNullOrEmpty(masterPageSettings.SystemMasterPageUrl)) { var url = ResolveUrlWithTokens(webModelHost, masterPageSettings.SystemMasterPageUrl); TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "Setting web.CustomMasterUrl: [{0}]", url); web.MasterUrl = UrlUtility.CombineUrl(siteRelativeUrl, url); } #endif if (!string.IsNullOrEmpty(masterPageSettings.SiteMasterPageUrl) || !string.IsNullOrEmpty(masterPageSettings.SystemMasterPageUrl)) { InvokeOnModelEvent(this, new ModelEventArgs { CurrentModelNode = null, Model = null, EventType = ModelEventType.OnProvisioned, Object = web, ObjectType = typeof(Web), ObjectDefinition = masterPageSettings, ModelHost = modelHost }); TraceService.Verbose((int)LogEventId.ModelProvisionCoreCall, "Calling web.Update()"); web.Update(); web.Context.ExecuteQueryWithTrace(); } else { InvokeOnModelEvent(this, new ModelEventArgs { CurrentModelNode = null, Model = null, EventType = ModelEventType.OnProvisioned, Object = web, ObjectType = typeof(Web), ObjectDefinition = masterPageSettings, ModelHost = modelHost }); } }