/// <summary> /// Creates a subsite for a SharePoint v3 site /// </summary> /// <param name="ParentSiteURL">SharePoint v3 site URL</param> /// <param name="SiteURLName">Subsite name</param> /// <param name="SiteTitle">Subsite title</param> /// <param name="SiteDescription">Subsite description</param> /// <param name="SiteLCID">Sibsite LCID</param> /// <param name="OverwriteIfExists">if true, the existing subsite with the same name will be deleted and created again.</param> /// <param name="OutNewSiteURL">the method will return the full URL of the subsite</param> /// <param name="ResultText">the method will return text log of the operations performed.</param> /// <returns>true if the subsite is successfully created.</returns> public bool CreateSite(string parentSiteURL, string siteURLName, string siteTitle, string siteDescription, uint siteLCID, bool overwriteIfExists, ref string outNewSiteURL, ref string resultText) { bool result = false; //string testResult = ""; string subSiteFullName = CleanURL(parentSiteURL) + "/" + siteURLName; outNewSiteURL = subSiteFullName; resultText = String.Format(TextResources.AttemptingToCreateSite, subSiteFullName) + Environment.NewLine; //wrapping in try catch as this will be executed in a different thread try { SPSite parentSite = new SPSite(parentSiteURL); SPWeb siteWeb = parentSite.OpenWeb(); SPWebCollection subSites = siteWeb.Webs; string currentTemplate = siteWeb.WebTemplate; string siteTestStatus; if (TestSharePointV3Site(subSiteFullName, out siteTestStatus)) { //site already exists resultText += TextResources.SiteExists + System.Environment.NewLine; if (overwriteIfExists) { //delete site SPUserCollection siteUsers = siteWeb.SiteUsers; //emptying site users collection int numUsers = siteUsers.Count; for (int userIndex = numUsers; userIndex == 1; userIndex--) { if (!(parentSite.Owner.Sid == siteWeb.SiteUsers[userIndex].Sid)) { siteWeb.SiteUsers.Remove(userIndex); } } subSites.Delete(siteURLName); } else { //dont need to overwrite, exiting result = true; return(result); } } subSites.Add(siteURLName, siteTitle, siteDescription, siteLCID, currentTemplate, true, false); string siteTestResult; if (TestSharePointV3Site(subSiteFullName, out siteTestResult)) { result = true; resultText += TextResources.SiteCreated + System.Environment.NewLine; } } catch (System.Exception ex) { resultText += ex.Message + System.Environment.NewLine; } return(result); }
public void Delete(string strWebUrl) { m_webCollection.Delete(strWebUrl); }