private void btnCreateSiteCollection_Click(object sender, EventArgs e) { SiteManager.SiteManagerClient managerClient = GetSiteManagerClient(); SiteManager.SiteData newSite = new SiteManager.SiteData() { Description=txtSiteDescription.Text, LcId=txtSiteLanguageId.Text, OwnerLogin=txtSiteOwnerAccount.Text, SecondaryContactLogin=txtSiteSecondaryAccount.Text, Title=txtSiteTitle.Text, Url=txtSiteUrl.Text, WebTemplate=txtSiteTemplate.Text}; string url = managerClient.CreateSiteCollection(newSite); txtStatus.Text = string.Format("Site collection creation was called and return value was '{0}'.", url); }
protected void Create_Click(object sender, EventArgs e) { // Let's first create the site collection using impersonation SiteManager.SiteManagerClient managerClient = GetSiteManagerClient(); SiteManager.SiteData newSite = new SiteManager.SiteData() { Description = txtDescription.Text, LcId = "1033", OwnerLogin = txtAdminPrimary.Text, SecondaryContactLogin = txtAdminSecondary.Text, Title = txtTitle.Text, Url = string.Format("sites/" + txtUrl.Text), WebTemplate = listSites.SelectedValue }; // Create the site collection by calling the WCF end point in SP farm. Starting from April CU (2014), this is supported also with CSOM string newSiteUrl = managerClient.CreateSiteCollection(newSite); // Let's also set the site regiional settings to en-UK using the WCF end point, since this is not exposed usign CSOM managerClient.SetSiteLocale(newSiteUrl, "fi-fi"); // Let's also brand the just created site collection properly using app identity // Using app identity, since we don't know if the requestor account has permissions to just created site collection Uri targetSite = new Uri(newSiteUrl); string realm = TokenHelper.GetRealmFromTargetUrl(targetSite); var token = TokenHelper.GetAppOnlyAccessToken(TokenHelper.SharePointPrincipal, targetSite.Authority, realm).AccessToken; using (var ctx = TokenHelper.GetClientContextWithAccessToken(targetSite.ToString(), token)) { // Deploy theme to web, so that we can set that for the site Web web = ctx.Web; ctx.Load(web); ctx.ExecuteQuery(); DeployThemeToWeb(ctx, web); //Set the properties for applying custom theme which was jus uplaoded string spColorURL = URLCombine(web.ServerRelativeUrl, "/_catalogs/theme/15/contoso.spcolor"); string spFontURL = URLCombine(web.ServerRelativeUrl, "/_catalogs/theme/15/contoso.spfont"); string backGroundImage = URLCombine(web.ServerRelativeUrl, "/_catalogs/theme/15/contosobg.jpg"); // Use the Red theme for demonstration web.ApplyTheme(spColorURL, spFontURL, backGroundImage, false); ctx.ExecuteQuery(); // Redirect to just created site Response.Redirect(newSiteUrl); } }
public void CreateSiteCollectionOnPremises(Contract.SharePointProvisioningData sharePointProvisioningData) { //On-Prem settings string generalOnPremUserName = GetConfiguration("General.OnPremUserName"); string generalOnPremUserPassword = EncryptionUtility.Decrypt(GetConfiguration("General.OnPremUserPassword"), GetConfiguration("General.EncryptionThumbPrint")); string generalOnPremUserDomain = GetConfiguration("General.OnPremUserDomain"); string generalOnPremWebApplication = GetConfiguration("General.OnPremWebApplication"); SiteManager.SiteData siteData = new SiteManager.SiteData(); siteData.Url = sharePointProvisioningData.Url.Substring(sharePointProvisioningData.Url.IndexOf("/sites")); siteData.Title = sharePointProvisioningData.Title; siteData.LcId = sharePointProvisioningData.Lcid.ToString(); siteData.OwnerLogin = GetOwnerLogin(sharePointProvisioningData, generalOnPremUserDomain); siteData.SecondaryContactLogin = string.Format(@"{0}\{1}", generalOnPremUserDomain, generalOnPremUserName); siteData.WebTemplate = sharePointProvisioningData.Template; using (SiteManager.SiteManagerClient siteManager = GetSiteManagerClient(generalOnPremWebApplication, generalOnPremUserName, generalOnPremUserPassword, generalOnPremUserDomain)) { siteManager.CreateSiteCollection(siteData); } }