/// <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);
 }