Esempio n. 1
0
        public string CreateSiteCollection(SiteData site)
        {
            string siteUrl = string.Empty;
            uint siteLcIdint = 1033;
            Guid siteId = SPContext.Current.Site.ID;
            // Elevation - would not actually be neeeded if we call this by using specific account with the right permissions, but is also one option.
            SPSecurity.RunWithElevatedPrivileges(delegate()
            {
                using (SPSite elevSite = new SPSite(siteId))
                {
                    if (!string.IsNullOrEmpty(site.LcId))
                    {
                        siteLcIdint = Convert.ToUInt16(site.LcId);
                    }
                    siteUrl = SPUrlUtility.CombineUrl(elevSite.Url, site.Url);

                    if (!SPSite.Exists(new Uri(siteUrl)))
                    {
                        using (SPSite newSite = elevSite.SelfServiceCreateSite(siteUrl, site.Title, site.Description,
                                                                            siteLcIdint, site.WebTemplate,
                                                                            site.OwnerLogin, string.Empty, string.Empty,
                                                                            site.SecondaryContactLogin, string.Empty, string.Empty))
                        {
                            //create the default groups
                            newSite.RootWeb.CreateDefaultAssociatedGroups(newSite.Owner.LoginName, newSite.SecondaryContact.LoginName, site.Title);
                        }
                    }
                    else
                    {
                        //TODO - site already existed... abort abort!
                    }
                }
            });
            return siteUrl;
        }
Esempio n. 2
0
 /// <summary>
 /// Method to get list of site collections under specific web application
 /// </summary>
 /// <returns></returns>
 public List<SiteData> ListSiteCollections()
 {
     List<SiteData> lstSites = new List<SiteData>();
     Guid siteId = SPContext.Current.Site.ID;
     SPSecurity.RunWithElevatedPrivileges(delegate()
     {
         //Create new elevated instances of the site collection
         using (SPSite elevSite = new SPSite(siteId))
         {
             foreach (SPSite site in elevSite.WebApplication.Sites)
             {
                 try
                 {
                     if (site.RootWeb != null)
                     {
                         SiteData siteData = new SiteData()
                         {
                             Title = site.RootWeb.Title,
                             Description = site.RootWeb.Description,
                             LcId = site.RootWeb.Language.ToString(),
                             OwnerLogin = site.Owner.LoginName,
                             Url = site.Url,
                             WebTemplate = string.Format("{0}#{1}", site.RootWeb.WebTemplate, site.RootWeb.Configuration)
                         };
                         if (site.SecondaryContact != null)
                         {
                             siteData.SecondaryContactLogin = site.SecondaryContact.LoginName;
                         }
                         lstSites.Add(siteData);
                     }
                 }
                 catch (Exception ex)
                 {
                     //TODO - Log exception and move to next
                 }
                 finally
                 {
                     if (site != null)
                         site.Dispose();
                 }
             }
         }
     });
     return lstSites;
 }