private static void DeployAttachmentsLibrary(ClientContext clientContext, List targetList) { var csomProvisionService = new CSOMProvisionService(); var webModel = SPMeta2Model.NewWebModel(); webModel.AddList(Assets.listDefinition); csomProvisionService.DeployWebModel(clientContext, webModel); var attachmentsFieldDefinition = new LookupFieldDefinition { Title = "ParentItemID", InternalName = "ParentItemID", Group = "Angular", Id = new Guid("FEF440A7-3228-4034-BB2A-FFD538D46A62"), LookupListTitle = targetList.Title, LookupWebId = clientContext.Web.Id, LookupField = "ID", RelationshipDeleteBehavior = "Cascade", Indexed = true }; var lookupFieldModel = SPMeta2Model.NewWebModel(web => { web.AddField(attachmentsFieldDefinition); }); webModel.AddList(Attachments.listDefinition, list => list.AddField(attachmentsFieldDefinition)); csomProvisionService.DeployWebModel(clientContext, webModel); }
public static void DeployWeb(ModelNode model) { var clientContext = GetClientcontext(); var provisionService = new CSOMProvisionService(); provisionService.DeployWebModel(clientContext, model); }
static void Main(string[] args) { var siteUrl = "http://portal"; var o365UserName = "******"; var o365UserPassword = "******"; var consoleUtils = new ConsoleUtils(); consoleUtils.WithO365Context(siteUrl, o365UserName, o365UserPassword, context => { // replace it with your M2 models var siteModel = default(ModelNode); var rotWebModel = default(ModelNode); // create a provision service - CSOMProvisionService or StandardCSOMProvisionService var provisionService = new CSOMProvisionService(); // little nice thing, tracing the progress consoleUtils.TraceDeploymentProgress(provisionService); // deploy! provisionService.DeploySiteModel(context, siteModel); provisionService.DeployWebModel(context, rotWebModel); }); }
static void Main(string[] args) { var model = GoogleMapsModel.GetModel(); var siteUrl = "http://dev"; var context = new ClientContext(siteUrl); var provisionService = new CSOMProvisionService(); provisionService.DeployWebModel(context, model); }
public static void PreProvision(ClientContext context, CSOMProvisionService provisioningService) { var webModel = SPMeta2Model.NewWebModel(web => { web.AddWeb(SubWeb, subweb => { }); }); provisioningService.DeployWebModel(context, webModel); }
public void CanProvisionIntranet_SiteModel() { WithCSOMContext(context => { var siteModel = new M2ProjectPrefixSiteModel(); var rootWebModel = new M2ProjectPrefixRootWebModel(); var provisionService = new CSOMProvisionService(); // site provisionService.DeploySiteModel(context, siteModel.GetSiteFeaturesModel()); provisionService.DeploySiteModel(context, siteModel.GetUserCustomActionModel()); provisionService.DeploySiteModel(context, siteModel.GetSiteSecurityModel()); provisionService.DeploySiteModel(context, siteModel.GetFieldsAndContentTypesModel()); provisionService.DeploySiteModel(context, siteModel.GetSandboxSolutionsModel()); // root web provisionService.DeployWebModel(context, rootWebModel.GetStyleLibraryModel()); provisionService.DeployWebModel(context, rootWebModel.GetModel()); }); }
/// <summary> /// Creates the content for the web object. E.g. List, libraries, permissions etc. /// </summary> /// <param name="weburl">The url of the web object (sitecollection + url part)</param> /// <param name="username">Username for authentication</param> /// <param name="password">Password for authentication</param> public static void CreateSharePointWebContent(string weburl, string username, string password) { using (var ctx = new ClientContext(weburl)) { ctx.Credentials = new SharePointOnlineCredentials(username, GetSecurePassword(password)); //create a new SPMeta2 provisioning service var provisionService = new CSOMProvisionService(); //deploy the model with SPMeta2 provisionService.DeployWebModel(ctx, GetListModel()); //delete the quick launch items DeleteQuickLaunchNodes(ctx); //then create the new quick launch items provisionService.DeployWebModel(ctx, GetNavigationModel()); //set homepage ctx.Web.RootFolder.WelcomePage = "General"; ctx.Web.RootFolder.Update(); ctx.ExecuteQuery(); } }
public static void Provision(ClientContext context, CSOMProvisionService provisioningService) { var webModel = SPMeta2Model.NewWebModel(web => { web.AddWeb(SubWeb, subweb => { // this is not working this is the point to fix within the issue #11 setupWeb(subweb, true); }); setupWeb(web, true); }); provisioningService.DeployWebModel(context, webModel); }
public void RegisterCustomModelHandlerWithSyntax() { var csomProvisionService = new CSOMProvisionService(); csomProvisionService.RegisterModelHandler(new ChangeWebTitleAndDescriptionModelHandler()); var webModel = SPMeta2Model.NewWebModel(web => { web.AddChangeWebTitleAndDescription(new ChangeWebTitleAndDescriptionDefinition { Title = "A new name for the web", Description = "Some changes done by ChangeWebTitleAndDescriptionDefinition" }); }); using (var clientContext = new ClientContext(CSOMSiteUrl)) csomProvisionService.DeployWebModel(clientContext, webModel); }
public void Deploy_WebModel_CSOM() { // setup url var webUrl = ""; // create you model var webModel = SPMeta2Model.NewWebModel(web => { }); // setup client context using (var clientContext = new ClientContext(webUrl)) { // deploy web model with SharePoint Foundation CSOM API var foundationProvisionService = new CSOMProvisionService(); foundationProvisionService.DeployWebModel(clientContext, webModel); // deploy web model with SharePoint Standard CSOM API var standardProvisionService = new StandardCSOMProvisionService(); standardProvisionService.DeployWebModel(clientContext, webModel); } }
public void RegisterCustomModelHandlerWithEvents() { var csomProvisionService = new CSOMProvisionService(); csomProvisionService.RegisterModelHandler(new ChangeWebTitleAndDescriptionModelHandler()); var webModel = SPMeta2Model.NewWebModel(web => { web.AddChangeWebTitleAndDescription(new ChangeWebTitleAndDescriptionDefinition { Title = "A new name for the web", Description = "Some changes done by ChangeWebTitleAndDescriptionDefinition" }, changeWebAndTitle => { changeWebAndTitle.OnProvisioning <Web, ChangeWebTitleAndDescriptionDefinition>(cntx => { var cntxWeb = cntx.Object; var cntxDef = cntx.ObjectDefinition; // do stuff }); changeWebAndTitle.OnProvisioned <Web, ChangeWebTitleAndDescriptionDefinition>(cntx => { var cntxWeb = cntx.Object; var cntxDef = cntx.ObjectDefinition; // do stuff }); }); }); using (var clientContext = new ClientContext(CSOMSiteUrl)) csomProvisionService.DeployWebModel(clientContext, webModel); }
public static void Provision(ClientContext context, CSOMProvisionService provisioningService) { var webModel = SPMeta2Model.NewWebModel(web => { web.AddNintexWorkflow(webWorkflow, workflowModel => { #region Events workflowModel.OnProvisioning <Object> (spMetaCtx => { Console.WriteLine("About to provision the workflow on the web"); }); workflowModel.OnProvisioned <Object> (spMetaCtx => { Console.WriteLine("Provisioned the web workflow"); Console.WriteLine("The result is {0}", spMetaCtx.Object); }); #endregion }); web.AddList(TestList, list => { // this refers to SPMeta2.NintexExt.Core.Syntax.Default; list.AddNintexForm(form, formmodel => { #region Events formmodel.OnProvisioning <Object> (spMetaCtx => { Console.WriteLine("About to provision the form for {0}", ((NintexFormDefinition)spMetaCtx.ObjectDefinition).ListContentTypeNameOrId); }); formmodel.OnProvisioned <string> (spMetaCtx => { Console.WriteLine("Provisoined the form for {0}", ((NintexFormDefinition)spMetaCtx.ObjectDefinition).ListContentTypeNameOrId); Console.WriteLine("The result is {0}", spMetaCtx.Object); }); #endregion }); // if you do not use the syntax default, you can use the line below //list.AddDefinitionNode(form); list.AddNintexWorkflow(listWorkflow, workflowModel => { #region Events workflowModel.OnProvisioning <Object> (spMetaCtx => { Console.WriteLine("About to provision the workflow on the list"); }); workflowModel.OnProvisioned <Object> (spMetaCtx => { Console.WriteLine("Provisioned the workflow"); Console.WriteLine("The result is {0}", spMetaCtx.Object); }); #endregion }); }); // same here, same list, testing that it works when the list is already there web.AddHostList(TestList, list => { // this refers to SPMeta2.NintexExt.Core.Syntax.Default; list.AddNintexForm(form, formmodel => { #region Events formmodel.OnProvisioning <Object> (spMetaCtx => { Console.WriteLine("About to provision the form for {0}", ((NintexFormDefinition)spMetaCtx.ObjectDefinition).ListContentTypeNameOrId); }); formmodel.OnProvisioned <string> (spMetaCtx => { Console.WriteLine("Provisoined the form for {0}", ((NintexFormDefinition)spMetaCtx.ObjectDefinition).ListContentTypeNameOrId); Console.WriteLine("The result is {0}", spMetaCtx.Object); }); #endregion }); // if you do not use the syntax default, you can use the line below //list.AddDefinitionNode(form); list.AddNintexWorkflow(listWorkflow, workflowModel => { #region Events workflowModel.OnProvisioning <Object> (spMetaCtx => { Console.WriteLine("About to provision the workflow on the list"); }); workflowModel.OnProvisioned <Object> (spMetaCtx => { Console.WriteLine("Provisioned the workflow"); Console.WriteLine("The result is {0}", spMetaCtx.Object); }); #endregion }); }); }); provisioningService.DeployWebModel(context, webModel); }