Exemplo n.º 1
0
        /// <summary>
        /// Note the second parameter we also want to build a list of farm level site collections, but we don't want to add the same site collection twice
        /// </summary>
        private XmlNode GetSiteCollectionsNode(SPSiteCollection siteCollections, bool AddToFarmSiteCollectionsNode)
        {
            XmlNode siteCollectionsNode = FarmXml.CreateElement("SiteCollections");
            // count
            XmlNode countAttribute = FarmXml.CreateAttribute("Count");

            countAttribute.Value = siteCollections.Count.ToString();
            siteCollectionsNode.Attributes.SetNamedItem(countAttribute);

            foreach (SPSite site in siteCollections)
            {
                XmlNode siteCollectionNode = FarmXml.CreateElement("SiteCollection");

                List <AttributeValuePair> siteAttributes = SPAttributes.GetSPSiteAttributes(site);
                foreach (AttributeValuePair siteAttribute in siteAttributes)
                {
                    siteCollectionNode.Attributes.SetNamedItem(GetXmlAttribute(siteAttribute));
                }
                // SPSiteAdministration gives us extra info on the SPSite, how cool is that!
                SPSiteAdministration      siteAdmin           = new SPSiteAdministration(site.ID);
                List <AttributeValuePair> siteAdminAttributes = SPAttributes.GetSPSiteAdministrationAttributes(siteAdmin);
                foreach (AttributeValuePair siteAdminAttribute in siteAdminAttributes)
                {
                    siteCollectionNode.Attributes.SetNamedItem(GetXmlAttribute(siteAdminAttribute));
                }
                siteCollectionsNode.AppendChild(siteCollectionNode);
                if (AddToFarmSiteCollectionsNode)
                {
                    XmlNode nodeclone = siteCollectionNode.Clone();
                    farmSiteCollectionsNode.AppendChild(nodeclone);
                }
                site.Dispose();
            }
            return(siteCollectionsNode);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Creates the web.
        /// </summary>
        /// <param name="fullWebUrl">The full url of the web to create.</param>
        /// <param name="sourceWeb">The source web.</param>
        private static void CreateWeb(string fullWebUrl, SPWeb sourceWeb)
        {
            string strWebTemplate       = null;
            string strTitle             = null;
            string strDescription       = null;
            uint   nLCID                = sourceWeb.Language;
            bool   convert              = false;
            bool   useUniquePermissions = false;

            using (SPSiteAdministration administration = new SPSiteAdministration(fullWebUrl))
                administration.AddWeb(Utilities.GetServerRelUrlFromFullUrl(fullWebUrl), strTitle, strDescription, nLCID, strWebTemplate, useUniquePermissions, convert);
        }
        internal static bool IsSiteLocked(Guid id)
        {
            var readLocked = false;

            SPSecurity.RunWithElevatedPrivileges(() =>
            {
                using (var admin = new SPSiteAdministration(id))
                {
                    readLocked = admin.ReadLocked;
                }
            });
            return(readLocked);
        }
        private static SPSite CreateSite(SPWebApplication webApp, SPSiteSubscription siteSubscription, string webTemplate, string title, string description, string ownerName, string ownerEmail, string quota, string secondaryContactName, string secondaryContactEmail, bool useHostHeaderAsSiteName, uint nLCID, Uri uri, string ownerLogin, string secondaryContactLogin, SPContentDatabase database)
        {
            if (database != null && database.MaximumSiteCount <= database.CurrentSiteCount)
            {
                throw new SPException("The maximum site count for the specified database has been exceeded.  Increase the maximum site count or specify another database.");
            }

            Logger.Write("PROGRESS: Creating site collection...");
            SPSite site = null;

            if (database != null)
            {
                site = database.Sites.Add(siteSubscription, uri.OriginalString, title, description, nLCID, webTemplate, ownerLogin,
                                          ownerName, ownerEmail, secondaryContactLogin, secondaryContactName, secondaryContactEmail,
                                          useHostHeaderAsSiteName);
            }
            else
            {
                site = webApp.Sites.Add(siteSubscription, uri.OriginalString, title, description, nLCID, webTemplate, ownerLogin,
                                        ownerName, ownerEmail, secondaryContactLogin, secondaryContactName, secondaryContactEmail,
                                        useHostHeaderAsSiteName);
            }
            Logger.Write("PROGRESS: Site collection successfully created.");

            if (!string.IsNullOrEmpty(quota))
            {
                Logger.Write("PROGRESS: Associating quota template with site collection...");
                using (SPSiteAdministration administration = new SPSiteAdministration(site.Url))
                {
                    SPFarm       farm       = SPFarm.Local;
                    SPWebService webService = farm.Services.GetValue <SPWebService>("");

                    SPQuotaTemplateCollection quotaColl = webService.QuotaTemplates;
                    administration.Quota = quotaColl[quota];
                }
            }
            if (!string.IsNullOrEmpty(webTemplate))
            {
                Logger.Write("PROGRESS: Creating default security groups...");
                using (SPWeb web = site.RootWeb)
                {
                    web.CreateDefaultAssociatedGroups(ownerLogin, secondaryContactLogin, string.Empty);
                }
            }

            return(site);
        }
Exemplo n.º 5
0
        public void RestoreVirtualServer(string url, string fileName)
        {
            try
            {
                WindowsImpersonationContext wic = WindowsIdentity.GetCurrent().Impersonate();

                SPWebApplication app = SPWebApplication.Lookup(new Uri("http://" + url));
                if (app == null)
                {
                    throw new Exception("SharePoint is not installed on the web site");
                }

                string tempPath = Path.GetTempPath();

                // unzip uploaded files if required
                string expandedFile = fileName;
                if (Path.GetExtension(fileName).ToLower() == ".zip")
                {
                    // unpack file
                    expandedFile = FileUtils.UnzipFiles(fileName, tempPath)[0];

                    // delete zip archive
                    FileUtils.DeleteFile(fileName);
                }

                // delete site
                SPSiteAdministration site = new SPSiteAdministration("http://" + url);
                site.Delete(false);

                // restore from backup
                app.Sites.Restore("http://" + url, expandedFile, true);

                // delete expanded file
                FileUtils.DeleteFile(expandedFile);

                wic.Undo();
            }
            catch (Exception ex)
            {
                throw new Exception("Could not restore SharePoint site", ex);
            }
        }
Exemplo n.º 6
0
        public static List <AttributeValuePair> GetSPSiteAdministrationAttributes(SPSiteAdministration siteAdmin)
        {
            List <AttributeValuePair> siteAdminAttributes = new List <AttributeValuePair>();

            try
            {
                siteAdminAttributes.Add(new AttributeValuePair("UsersCount", siteAdmin.UsersCount.ToString()));
                siteAdminAttributes.Add(new AttributeValuePair("Title", siteAdmin.Title));
                siteAdminAttributes.Add(new AttributeValuePair("Description", siteAdmin.Description));
                siteAdminAttributes.Add(new AttributeValuePair("Owner", siteAdmin.OwnerLoginName));
                siteAdminAttributes.Add(new AttributeValuePair("OwnerEmail", siteAdmin.OwnerEmail));
                siteAdminAttributes.Add(new AttributeValuePair("DiskUsed", (siteAdmin.DiskUsed / 1024 / 1024).ToString() + " MB"));
                siteAdminAttributes.Add(new AttributeValuePair("SecondaryContact", siteAdmin.SecondaryContactLoginName));
            }
            catch (Exception e)
            {
                siteAdminAttributes.Add(new AttributeValuePair("Exception", e.ToString()));
            }
            return(siteAdminAttributes);
        }
Exemplo n.º 7
0
		public void RestoreVirtualServer(string url, string fileName)
		{
			try
			{
				WindowsImpersonationContext wic = WindowsIdentity.GetCurrent().Impersonate();

				SPWebApplication app = SPWebApplication.Lookup(new Uri("http://" + url));
				if (app == null)
					throw new Exception("SharePoint is not installed on the web site");

				string tempPath = Path.GetTempPath();

				// unzip uploaded files if required
				string expandedFile = fileName;
				if (Path.GetExtension(fileName).ToLower() == ".zip")
				{
					// unpack file
					expandedFile = FileUtils.UnzipFiles(fileName, tempPath)[0];

					// delete zip archive
					FileUtils.DeleteFile(fileName);
				}

				// delete site
				SPSiteAdministration site = new SPSiteAdministration("http://" + url);
				site.Delete(false);

				// restore from backup
				app.Sites.Restore("http://" + url, expandedFile, true);

				// delete expanded file
				FileUtils.DeleteFile(expandedFile);

				wic.Undo();
			}
			catch (Exception ex)
			{
				throw new Exception("Could not restore SharePoint site", ex);
			}
		}
Exemplo n.º 8
0
 public SPTaxonomySessionPipeBind(SPSiteAdministration inputObject)
 {
     this._siteUrl = inputObject.Url;
 }
        private static SPSite CreateSite(SPWebApplication webApp, SPSiteSubscription siteSubscription, string webTemplate, string title, string description, string ownerName, string ownerEmail, string quota, string secondaryContactName, string secondaryContactEmail, bool useHostHeaderAsSiteName, uint nLCID, Uri uri, string ownerLogin, string secondaryContactLogin, SPContentDatabase database)
        {
            if (database != null && database.MaximumSiteCount <= database.CurrentSiteCount)
                throw new SPException("The maximum site count for the specified database has been exceeded.  Increase the maximum site count or specify another database.");

            Logger.Write("PROGRESS: Creating site collection...");
            SPSite site = null;
            if (database != null)
            {
                site = database.Sites.Add(siteSubscription, uri.OriginalString, title, description, nLCID, webTemplate, ownerLogin,
                     ownerName, ownerEmail, secondaryContactLogin, secondaryContactName, secondaryContactEmail,
                     useHostHeaderAsSiteName);
            }
            else
            {
                site = webApp.Sites.Add(siteSubscription, uri.OriginalString, title, description, nLCID, webTemplate, ownerLogin,
                     ownerName, ownerEmail, secondaryContactLogin, secondaryContactName, secondaryContactEmail,
                     useHostHeaderAsSiteName);
            }
            Logger.Write("PROGRESS: Site collection successfully created.");

            if (!string.IsNullOrEmpty(quota))
            {
                Logger.Write("PROGRESS: Associating quota template with site collection...");
                using (SPSiteAdministration administration = new SPSiteAdministration(site.Url))
                {
                    SPFarm farm = SPFarm.Local;
                    SPWebService webService = farm.Services.GetValue<SPWebService>("");

                    SPQuotaTemplateCollection quotaColl = webService.QuotaTemplates;
                    administration.Quota = quotaColl[quota];
                }
            }
            if (!string.IsNullOrEmpty(webTemplate))
            {
                Logger.Write("PROGRESS: Creating default security groups...");
                using (SPWeb web = site.RootWeb)
                {
                    web.CreateDefaultAssociatedGroups(ownerLogin, secondaryContactLogin, string.Empty);
                }
            }

            return site;
        }