Example #1
0
        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);
        }
Example #2
0
        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);
            }
        }