private void CreateSiteCollection(SPWebApplication webApp)
        {
            string sitCollName = "";
            string url         = "";
            string baseName    = "";

            findAvailableSiteCollectionName(webApp, out sitCollName, out url, out baseName);

            Owner.IncrementCurrentTaskProgress("Creating site collection '" + url + "'");

            SPSiteCollection siteCollections = webApp.Sites;
            SPSite           site            = siteCollections.Add("/sites/" + url, WorkingDefinition.SiteCollOwnerLogin,
                                                                   WorkingDefinition.SiteCollOwnerEmail);

            SPWeb web = site.RootWeb;

            web.Title = sitCollName;
            web.Update();

            SiteCollInfo siteCollInfo = new SiteCollInfo();

            siteCollInfo.URL = site.Url;

            Owner.WorkingSiteCollections.Add(siteCollInfo);
        }
Exemplo n.º 2
0
        private void InitializeSite(string hostName, string templateName, uint lcid)
        {
            var defaultPortWebApp = this.GetDefaultPortWebApp();
            SPContentDatabase testContentDatabase = this.EnsureTestContentDatabase(defaultPortWebApp);

            SPSiteCollection sites = testContentDatabase.Sites;

            SPSite existingSite = testContentDatabase.Sites.FirstOrDefault(site => site.Url == hostName);

            if (existingSite != null)
            {
                existingSite.Delete();
                existingSite.Dispose();

                // Refresh Sites collection
                sites = testContentDatabase.Sites;
            }

            SPSite newSite = sites.Add(
                hostName,
                "Dynamite Test",
                "Integration test temporary site",
                lcid,
                templateName,
                Environment.UserName,
                "Dynamite Test Agent",
                "*****@*****.**",
                Environment.UserName,
                "Dynamite Test Agent",
                "*****@*****.**",
                true);

            this.SiteCollection = newSite;
        }
Exemplo n.º 3
0
        /// <summary>
        /// Gets a new instance of the
        /// </summary>
        /// <param name="siteUrl"></param>
        /// <returns></returns>
        private SPSiteCollection NewInstance(string siteUrl)
        {
            SPSiteCollection siteCollection = new SPSiteCollection();

            if (spTeamSiteInstances.ContainsKey(siteUrl))
            {
                siteCollection.spSite = spTeamSiteInstances[siteUrl].spSite;
                siteCollection.spWeb  = spTeamSiteInstances[siteUrl].spWeb;
                EventLogger.WriteLine("Get NewInstance from cache: {0}", siteUrl);
            }
            else
            {
                EventLogger.Timer.Start("SPDataProvider.NewInstance");
                siteCollection.spSite = new SPSite(siteUrl);
                siteCollection.spWeb  = siteCollection.spSite.OpenWeb();
                // TODO: use ValidateFormDigest - more secure than AllowUnsafeUpdates
                // teamSite.spWeb.ValidateFormDigest();
                siteCollection.spWeb.AllowUnsafeUpdates = true;
                // cache instance for later use so we aren't fetching up everytime
                spTeamSiteInstances.Add(siteUrl, siteCollection);
                long elapsed = EventLogger.Timer.Stop("SPDataProvider.NewInstance");
                EventLogger.WriteLine("Create NewInstance elapsed: {0}ms", elapsed);
            }

            return(siteCollection);
        }
Exemplo n.º 4
0
        private void InitializeSiteAtManagedPath(string managedPath)
        {
            var defaultPortWebApp = this.GetDefaultPortWebApp();
            SPContentDatabase testContentDatabase = this.EnsureTestContentDatabase(defaultPortWebApp);

            var prefixCollection = defaultPortWebApp.Prefixes;

            if (!prefixCollection.Contains(managedPath))
            {
                // The hostname-site collection's prefix may still exist
                // if a test run was interrupted previously.
                prefixCollection.Add(managedPath, SPPrefixType.ExplicitInclusion);
            }

            // Flag so dispose will remove the managed path when the site collection is deleted
            this.ManagedPathCreated = managedPath;

            var siteUrl = defaultPortWebApp.GetResponseUri(SPUrlZone.Default) + managedPath;

            SPSiteCollection sites        = testContentDatabase.Sites;
            SPSite           existingSite = sites.FirstOrDefault(site => site.Url == siteUrl);

            if (existingSite != null)
            {
                existingSite.Delete();
                existingSite.Dispose();

                // Refresh Sites collection
                sites = testContentDatabase.Sites;
            }

            var newSite = sites.Add(siteUrl, Environment.UserName, "*****@*****.**");

            this.SiteCollection = newSite;
        }
Exemplo n.º 5
0
 private static int CreateSiteCollection()
 {
     try
     {
         string srvUrl = "http://sharepointserve";
         using (SPSite site = new SPSite(srvUrl))
         {
             // current collection
             SPSiteCollection coll       = site.WebApplication.Sites;
             XDocument        definition = XDocument.Load("SiteDefinition.xml");
             XElement         root       = definition.Element("SiteDefinition");
             SPSite           newSite    = coll.Add(
                 root.Element("Url").Value,
                 root.Element("Title").Value,
                 root.Element("Description").Value,
                 Convert.ToUInt32(root.Element("LCID").Value),
                 (String.IsNullOrEmpty(root.Element("WebTemplate").Value) ? null : root.Element("WebTemplate").Value),
                 root.Element("OwnerLogin").Value,
                 root.Element("OwnerName").Value,
                 root.Element("OwnerEmail").Value
                 );
             return(0);
         }
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex.Message);
         return(1);
     }
 }
Exemplo n.º 6
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.º 7
0
        public List <string> getSiteCollectionsInWebApp(string WebAppName)
        {
            List <string> SiteCollNames = new List <string>();

            SPWebServiceCollection webServices = new SPWebServiceCollection(SPFarm.Local);

            foreach (SPWebService webService in webServices)
            {
                SPWebApplicationCollection webappcoll = webService.WebApplications;
                foreach (SPWebApplication webApp in webappcoll)
                {
                    if (webApp.Name == WebAppName)
                    {
                        SPSiteCollection sitecoll = webApp.Sites;
                        foreach (SPSite Site in sitecoll)
                        {
                            SiteCollNames.Add(Site.Url);
                            Site.Dispose();
                        }
                        return(SiteCollNames);
                    }
                }
            }
            return(SiteCollNames);
        }
Exemplo n.º 8
0
        /// <summary>
        /// An item was added.
        /// </summary>
        public override void ItemAdded(SPItemEventProperties properties)
        {
            SPSite           site   = new SPSite("http://wdcdmzsp4");
            SPWebApplication webApp = site.WebApplication;

            if (webApp.SelfServiceSiteCreationEnabled)
            {
                string siteName = "testsitecol";

                SPWeb web = site.OpenWeb();
                web.AllowUnsafeUpdates = true;
                SPSiteCollection spSites = webApp.Sites;
                SPSite           newSite = spSites[0].SelfServiceCreateSite(
                    "/sites/" + siteName,
                    "Test Site collection",
                    string.Empty,
                    1033,
                    "STS#0",
                    "waitakidmz\\Sp_Admin",
                    "Admin",
                    "*****@*****.**",
                    "waitakidmz\\Sp_Admin",
                    "Admin",
                    "*****@*****.**");
            }

            base.ItemAdded(properties);
        }
Exemplo n.º 9
0
        private void BackupMenuItem_Click(object sender, EventArgs e)
        {
            //SaveFileDialog fileDialog = new SaveFileDialog();

            //DialogResult result = fileDialog.ShowDialog();
            //if (result == DialogResult.OK)
            //{
            Cursor.Current = Cursors.WaitCursor;

            SPSite           site       = CurrentNode.Tag as SPSite;
            SPSiteCollection collection = CurrentNode.SPParent as SPSiteCollection;

            string siteurl = site.Url;

            SPExportSettings exportSettings = new SPExportSettings();

            exportSettings.SiteUrl = site.Url;
            Guid           id  = new Guid("d151035f-a876-4d34-8f58-7b6cfdd3ace3");
            SPExportObject edf = new SPExportObject();

            edf.Id = id;
            edf.IncludeDescendants = SPIncludeDescendants.All;
            edf.Type            = SPDeploymentObjectType.File;
            edf.ExcludeChildren = false;

            //exportSettings.ExportMethod = SPExportMethodType.ExportAll;

            exportSettings.BaseFileName    = "MyFile";
            exportSettings.FileLocation    = @"c:\test\";
            exportSettings.FileCompression = true;
            exportSettings.ExportObjects.Add(edf);

            SPExport export = new SPExport(exportSettings);

            export.Run();


            SPImportSettings importSettings = new SPImportSettings();

            importSettings.SiteUrl         = siteurl;
            importSettings.BaseFileName    = "MyFile";
            importSettings.FileLocation    = @"c:\test\";
            importSettings.FileCompression = true;
            importSettings.WebUrl          = siteurl + "/PublishingImages/";

            //SPImportObject imp = new SPImportObject();
            //imp.Type = SPDeploymentObjectType.File;
            //imp.

            SPImport import = new SPImport();

            import.Run();


            //collection.Backup(site.Url, fileDialog.FileName, true);

            Cursor.Current = Cursors.Default;
//            }
        }
Exemplo n.º 10
0
        public SPSiteCollectionInstance(ObjectInstance prototype, SPSiteCollection siteCollection)
            : this(prototype)
        {
            if (siteCollection == null)
            {
                throw new ArgumentNullException("siteCollection");
            }

            m_siteCollection = siteCollection;
        }
Exemplo n.º 11
0
        // Uncomment the method below to handle the event raised after a feature has been activated.

        public override void FeatureActivated(SPFeatureReceiverProperties properties)
        {
            SPWebApplication webApplication = properties.Feature.Parent as SPWebApplication;
            SPSiteCollection sites          = webApplication.Sites;

            if (sites["sites/training"] == null)
            {
                SPSite trainingSite = sites.Add("sites/training", "CORP\\Administrator", "*****@*****.**");
                trainingSite.Dispose();
            }
        }
Exemplo n.º 12
0
        public void hstCreateSite(string webAppURL, string strURL, string strTitle, string strDesc, uint nLCID, string strTemplate,
                                  string strOwnerLogin1, string strOwnerName1, string strOwnerEmail1,
                                  string strOwnerLogin2, string strOwnerName2, string strOwnerEmail2,
                                  bool hhMode)
        {
            System.Uri       srvrUri = new System.Uri(webAppURL);
            SPWebApplication webApp  = SPWebApplication.Lookup(srvrUri);

            SPSiteCollection siteColl = webApp.Sites;
            SPSite           oSite    = null;

            try
            {
                // If the secondary owner information is not provided, make sure it's null
                if (String.IsNullOrEmpty(strOwnerLogin2))
                {
                    strOwnerLogin2 = null;
                }
                if (String.IsNullOrEmpty(strOwnerName2))
                {
                    strOwnerName2 = null;
                }
                if (String.IsNullOrEmpty(strOwnerEmail2))
                {
                    strOwnerEmail2 = null;
                }
                if (String.IsNullOrEmpty(strDesc))
                {
                    strDesc = null;
                }
                if (String.IsNullOrEmpty(strTitle))
                {
                    strTitle = null;
                }
                if (String.IsNullOrEmpty(strTemplate))
                {
                    strTemplate = null;
                }

                // add site to the site collection
                oSite = siteColl.Add(strURL, strTitle, strDesc, nLCID, strTemplate,
                                     strOwnerLogin1, strOwnerName1, strOwnerEmail1,
                                     strOwnerLogin2, strOwnerName2, strOwnerEmail2, true);
            }
            finally
            {
                // dispose object
                if (oSite != null)
                {
                    oSite.Dispose();
                }
            }
        }
Exemplo n.º 13
0
    protected void JobDefinitionDropDownList_SelectedIndexChanged(object sender, EventArgs e)
    {
        AllSiteCollectionsRadioButton.Checked  = true;
        SomeSiteCollectionsRadioButton.Checked = false;
        if (JobDefinitionDropDownList.SelectedIndex > 0)
        {
            SPJobDefinition jobDefinition = GetJobDefinition();
            if (jobDefinition != null)
            {
                if (jobDefinition.Schedule != null)
                {
                    DateTime time = jobDefinition.Schedule.NextOccurrence(DateTime.Now);
                    NextOccurrenceLabel.Text        = time.ToLongDateString() + " " + time.ToShortTimeString();
                    NextOccurrenceInfoLabel.Visible = true;
                    NextOccurrenceLabel.Visible     = true;
                    DisableButton.Visible           = true;
                    if (jobDefinition.IsDisabled)
                    {
                        DisableButton.Text = "Enable";
                    }
                    else
                    {
                        DisableButton.Text = "Disable";
                    }
                    PopulateSchedule(jobDefinition.Schedule);
                    SPSiteCollection sites = WebAppSelector.CurrentItem.Sites;
                    foreach (SPSite site in sites)
                    {
                        var child =
                            WebAppSelector.CurrentItem.GetChild <JobSettings>(jobDefinition.Name);

                        if ((child != null) && child.SiteCollectionsEnabled.Contains(site.ID))
                        {
                            SomeSiteCollectionsRadioButton.Checked = true;
                            foreach (RepeaterItem item in SiteCollectionRepeater.Items)
                            {
                                var box = item.FindControl("SiteCollectionCheckBox") as CheckBox;
                                box.Checked = true;
                                break;
                            }
                        }
                    }
                }
                else
                {
                    DisableButton.Visible           = false;
                    NextOccurrenceInfoLabel.Visible = false;
                    NextOccurrenceLabel.Visible     = false;
                }
            }
        }
    }
Exemplo n.º 14
0
 /// <summary>
 /// Dispose of a specific SPWeb/SPSite by URL
 /// </summary>
 /// <param name="siteUrl"></param>
 internal void Dispose(string siteUrl)
 {
     if (spTeamSiteInstances.ContainsKey(siteUrl))
     {
         SPSiteCollection teamSite = spTeamSiteInstances[siteUrl];
         if (teamSite.spSite != null)
         {
             //teamSite.spSite.Dispose();
             try { teamSite.spSite.Dispose(); }
             catch { /* eat any handle exceptions */ }
         }
         if (teamSite.spWeb != null)
         {
             //teamSite.spWeb.AllowUnsafeUpdates = false;
             teamSite.spWeb.Dispose();
         }
     }
 }
Exemplo n.º 15
0
        public override void Execute(Guid targetInstanceId)
        {
            //Get the Web Application in which this Timer Job runs
            SPWebApplication  webApp              = this.Parent as SPWebApplication;
            SPContentDatabase contentDB           = webApp.ContentDatabases[targetInstanceId];
            SPSiteCollection  timerSiteCollection = webApp.ContentDatabases[targetInstanceId].Sites;
            SPList            timerJobList        = null;

            foreach (SPSite site in timerSiteCollection)
            {
                timerJobList = site.RootWeb.Lists.TryGetList("Announcements");
                if (timerJobList != null)
                {
                    SPListItem newItem = timerJobList.Items.Add();
                    newItem["Title"] = "Today is " + getToday();
                    newItem.Update();
                }
            }
        }
Exemplo n.º 16
0
        protected override ActivityExecutionStatus Execute(ActivityExecutionContext executionContext)
        {
            try
            {
                string secondaryLogin       = GetEmptyAsNull(SecondaryOwnerLogin);
                string secondaryDisplayName = GetEmptyAsNull(SecondaryOwnerDisplayName);
                string secondaryEmail       = GetEmptyAsNull(SecondaryOwnerEmail);
                string templateID           = GetEmptyAsNull(TemplateID);
                string description          = GetNullAsEmpty(SiteDescription);
                string title = GetNullAsEmpty(SiteTitle);


                SPSiteCollection sites = GetSitesCollection();
                SPSecurity.RunWithElevatedPrivileges(delegate()
                {
                    if (IsolateInNewContentDB)
                    {
                        using (SPSite site = sites.Add(SiteURL, title, description, LCID, templateID, PrimaryOwnerLogin, PrimaryOwnerDisplayName, PrimaryOwnerEmail, secondaryLogin, secondaryDisplayName, secondaryEmail, DBServer, NewContentDBName, null, null))
                        {
                            CapContentDB(site);
                            Result = site.Url;
                        }
                    }
                    else
                    {
                        using (SPSite site = sites.Add(SiteURL, title, description, LCID, templateID, PrimaryOwnerLogin, PrimaryOwnerDisplayName, PrimaryOwnerEmail, secondaryLogin, secondaryDisplayName, secondaryEmail))
                        {
                            Result = site.Url;
                        }
                    }

                    string message = "Provisioning Site Collection " + SiteTitle + " at " + SiteURL;
                    WorkflowHistoryLogger.LogMessage(executionContext, SPWorkflowHistoryEventType.None, "Complete", UserID, message);
                });
            }
            catch (Exception ex)
            {
                WorkflowHistoryLogger.LogError(executionContext, UserID, ex);
                return(ActivityExecutionStatus.Faulting);
            }
            return(ActivityExecutionStatus.Closed);
        }
Exemplo n.º 17
0
        private SPSiteCollection GetSitesCollection()
        {
            SPWebApplication webApp = null;
            SPSiteCollection sites  = null;

            if (string.IsNullOrEmpty(WebAppURL))
            {
                using (SPSite currentSite = new SPSite(__Context.Web.Site.ID, __Context.Web.CurrentUser.UserToken))
                {
                    webApp = currentSite.WebApplication;
                }
            }
            else
            {
                System.Uri srvrUri = new System.Uri(WebAppURL);
                webApp = SPWebApplication.Lookup(srvrUri);
            }
            sites = webApp.Sites;
            return(sites);
        }
Exemplo n.º 18
0
        private void RestoreMenuItem_Click(object sender, EventArgs e)
        {
            RestoreForm restoreForm = new RestoreForm();

            DialogResult result = restoreForm.ShowDialog();

            if (result == DialogResult.OK)
            {
                SPSiteCollection collection = CurrentNode.Tag as SPSiteCollection;

                Cursor.Current = Cursors.WaitCursor;

                collection.Restore(
                    restoreForm.tbSiteName.Text,
                    restoreForm.tbFilename.Text,
                    restoreForm.cbOverride.Checked,
                    restoreForm.cbHostHeader.Checked);

                Cursor.Current = Cursors.Default;
            }
        }
Exemplo n.º 19
0
		protected override void CreateChildControls()
		{
			// Get Application
			SPSite site = SPContext.Current.Site;
			Uri app_uri = new Uri(site.Protocol+"//"+site.HostName+":"+site.Port+"/");
			SPWebApplication app = SPWebApplication.Lookup(app_uri);

			// Loop for all site collections
			SPSiteCollection sites = app.Sites;
			StringBuilder sb = new StringBuilder();
			foreach (SPSite s in sites)
			{
				sb.Append("<div class='div-site-collection'>");
				sb.Append("<ul class='ul-site-collection'>");
				build_webs(s.RootWeb, sb);
				sb.Append("</ul>");
				sb.Append("</div>");
			}

			this.Controls.Add(new LiteralControl(sb.ToString()));
		}
Exemplo n.º 20
0
 public static IEnumerable <SPSite> AsSafeEnumerable(this SPSiteCollection sites, Action <SPSite> onDispose)
 {
     foreach (SPSite site in sites)
     {
         try
         {
             yield return(site);
         }
         finally
         {
             if (site != null)
             {
                 if (onDispose != null)
                 {
                     onDispose(site);
                 }
                 site.Dispose();
             }
         }
     }
 }
Exemplo n.º 21
0
        public static IEnumerable <Location> ToLocations(this SPSiteCollection spLocations, string parentId)
        {
            if (spLocations == null)
            {
                // todo log error
                return(null);
            }

            var locations = new List <Location>();

            foreach (SPSite spl in spLocations)
            {
                var l = spl.ToLocation(parentId);
                locations.Add(l);

                locations.AddRange(spl.AllWebs.ToLocations(l.UniqueId));

                // https://blogs.technet.microsoft.com/stefan_gossner/2008/12/05/disposing-spweb-and-spsite-objects/
                spl.Dispose();
            }

            return(locations);
        }
Exemplo n.º 22
0
 /// <summary>
 /// Returns a collection of <see cref="SPSite"/> objects that will be disposed by its <see cref="IEnumerator"/>.
 /// </summary>
 /// <param name="sites">The <see cref="SPSiteCollection"/> that contains the sites to enumerate.</param>
 /// <returns>An <see cref="IEnumerable{SPSite}"/> that will dispose each <see cref="SPSite"/> returned.</returns>
 public static IEnumerable <SPSite> AsSafeEnumerable(this SPSiteCollection sites)
 {
     return(sites.AsSafeEnumerable(null));
 }
        private SPSite AddSite(SPSiteCollection sites, Site siteToAdd, SitesConfiguration configuration)
        {
            var newSite = sites.Add(
                    siteToAdd.Name,
                    siteToAdd.Title,
                    siteToAdd.Description,
                    siteToAdd.Locale,
                    null,
                    configuration.SitesOwner,
                    configuration.SitesOwner,
                    string.Empty);

            /*logger.Debug(
                    string.Format(
                        "Loading template: {0} from package: {1} in folder: {2}",
                        site.WebTemplate.Name,
                        site.WebTemplate.PackageFileName,
                        configuration.TemplatesDirectory));*/
            LoadTemplateFromPackage(
                newSite,
                siteToAdd.WebTemplate.PackageFileName,
                configuration.TemplatesDirectory);
            /*logger.Debug(string.Format("Done. Loading template: {0}", site.WebTemplate.Name));*/

            /*logger.Debug(string.Format(
                "Applying template: {0} to empty site: {1}",
                site.WebTemplate.Name,
                site.Name));*/
            ApplyWebTemplate(GetRootWeb(newSite), siteToAdd.WebTemplate.Name);
            /*logger.Debug(string.Format(
                "Done. Applying template: {0} to site: {1}",
                site.WebTemplate.Name,
                site.Name));*/

            return newSite;
        }
Exemplo n.º 24
0
        public Program()
        {
            Console.WriteLine("In constructor...");
            SPWebApplication webApplication  = SPWebApplication.Lookup(new Uri(MySiteUri));
            SPSiteCollection siteCollections = webApplication.Sites;
            bool             recycle         = false;
            bool             armed           = false;

            if (String.Compare(RecyleOrDelete, "recycle", false) == 0)
            {
                recycle = true;
            }
            if (MySiteDeleteArmed)
            {
                armed = true;
            }

            foreach (SPSite siteCollection in siteCollections)
            {
                try
                {
                    string             username           = siteCollection.RootWeb.Site.Owner.LoginName;
                    SPServiceContext   serviceContext     = SPServiceContext.GetContext(siteCollection);
                    UserProfileManager userProfileManager = new UserProfileManager(serviceContext);
                    UserProfile        u = null;
                    try
                    {
                        u = userProfileManager.GetUserProfile(siteCollection.RootWeb.Site.Owner.LoginName);
                        Console.WriteLine(username);
                        Console.WriteLine(u.ID);
                        try
                        {
                            if (u["uob-Migrated"].Count > 0)
                            {
                                DateTime dt    = DateTime.Parse(u["uob-Migrated"].Value.ToString());
                                DateTime df    = DateTime.Now;
                                double   weeks = (df - dt).TotalDays / 7;
                                if (weeks > UoBMigrationDeletePeriod)
                                {
                                    string logEntry = string.Empty;
                                    try
                                    {
                                        if (armed)
                                        {
                                            logEntry = "DELETED MYSITE ***MyFiles*** : " + username;
                                            if (recycle)
                                            {
                                                siteCollection.RootWeb.Lists["MyFiles"].Recycle();
                                            }
                                            else
                                            {
                                                siteCollection.RootWeb.Lists["MyFiles"].Delete();
                                            }
                                        }
                                        else
                                        {
                                            logEntry = "DELETE (SOFT) MYSITE MyFiles: " + username;
                                        }
                                    }
                                    catch
                                    {
                                        //todo if deletion failed...
                                    }
                                    finally
                                    {
                                        Console.ForegroundColor = ConsoleColor.Green;
                                        Console.WriteLine(logEntry + " " + weeks.ToString() + " old");
                                        Console.ResetColor();

                                        IServiceLocator serviceLocator = SharePointServiceLocator.GetCurrent();
                                        ILogger         logger         = serviceLocator.GetInstance <ILogger>();
                                        logger.LogToOperations(logEntry, EventSeverity.Information);
                                    }
                                }
                            }
                        }
                        catch
                        {
                            string logEntry = "FAILED TO DELETE MYSITE: " + siteCollection.RootWeb.Site.Owner.LoginName;
                            Console.BackgroundColor = ConsoleColor.DarkRed;
                            Console.ForegroundColor = ConsoleColor.White;
                            Console.WriteLine(logEntry);
                            Console.ResetColor();
                            IServiceLocator serviceLocator = SharePointServiceLocator.GetCurrent();
                            ILogger         logger         = serviceLocator.GetInstance <ILogger>();
                            logger.LogToOperations(logEntry, EventSeverity.Error);
                        }
                    }
                    catch (Exception ex)
                    {
                        //mysite has no user profile, so we cant check migrated, just add a warning in the log
                        string logEntry = "MYSITE HAS NO PROFILE: " + siteCollection.RootWeb.Site.Owner.LoginName;
                        Console.BackgroundColor = ConsoleColor.Red;
                        Console.ForegroundColor = ConsoleColor.Yellow;
                        Console.WriteLine(logEntry);
                        Console.ResetColor();
                        IServiceLocator serviceLocator = SharePointServiceLocator.GetCurrent();
                        ILogger         logger         = serviceLocator.GetInstance <ILogger>();
                        logger.LogToOperations(logEntry, EventSeverity.Warning);
                    }
                }
                catch
                {
                    //ex
                }



                siteCollection.Close();
            }
        }
Exemplo n.º 25
0
 public static void ForEach(this SPSiteCollection source, Action <SPSite> action)
 {
     source.AsSafeEnumerable().ForEach(action);
 }
 private static bool SiteCollectionExists(SPSiteCollection sites, string siteName)
 {
     return !string.IsNullOrEmpty(sites.Names.FirstOrDefault(site => site == siteName));
 }
        /// <summary>
        ///
        /// </summary>
        /// <param name="webApplicationURL"></param>
        /// <param name="siteName"></param>
        /// <param name="siteTitle"></param>
        /// <param name="siteDesc"></param>
        /// <param name="siteLanguage"></param>
        /// <param name="templateName"></param>
        /// <param name="ownerLoginName"></param>
        /// <param name="ownerName"></param>
        /// <param name="ownerEmail"></param>
        /// <returns></returns>
        public bool CreateSiteCollection(
            String webApplicationURL,
            string siteName,
            string siteTitle,
            string siteDesc,
            int siteLanguage,
            string templateName,
            string ownerLoginName,
            string ownerName,
            string ownerEmail
            )
        {
            bool isSiteCreated = false;

            try
            {
                LoggingService.LogErrorInULS("RSG.Inside.SPSiteCol.ExternalService - CreateSiteCollection - Start");
                LoggingService.LogErrorInULS("SIte Info: " + "\nWebApplication URL: " + webApplicationURL +
                                             "\nSiteName: " + siteName +
                                             "\nSiteTitle: " + siteTitle +
                                             "\nSiteDesc: " + siteDesc +
                                             "\nSiteLanguage: " + siteLanguage +
                                             "\nTemplateName: " + templateName +
                                             "\nownerLoginName: " + ownerLoginName +
                                             "\nownerName: " + ownerName +
                                             "\nownerEmail: " + ownerEmail
                                             );

                SPSecurity.RunWithElevatedPrivileges(delegate()
                {
                    using (SPSite siteCollectionOuter = new SPSite(webApplicationURL))
                    {
                        SPWebApplication webApp = siteCollectionOuter.WebApplication;
                        LoggingService.LogErrorInULS("SiteCreationActivity :" + webApplicationURL + siteName + templateName + siteLanguage);

                        SPSiteCollection siteCollection = webApp.Sites;
                        UInt32 lang = Convert.ToUInt32(siteLanguage);
                        SPWebTemplateCollection myTemplates = siteCollectionOuter.RootWeb.GetAvailableWebTemplates(lang);
                        SPWebTemplate reqTemplate           = myTemplates[templateName];

                        if (reqTemplate != null)
                        {
                            using (SPSite site = siteCollection.Add("sites/" + siteName, siteTitle, siteDesc, lang, reqTemplate.Name, ownerLoginName, ownerName, ownerEmail))
                            {
                                isSiteCreated = true;
                                try
                                {
                                    site.Features.Add(new Guid("F6924D36-2FA8-4f0b-B16D-06B7250180FA"), true);
                                }
                                catch (Exception expub)
                                {
                                    LoggingService.LogErrorInULS("Publishing Feature Activation Issue" + expub.ToString());
                                }
                                try
                                {
                                    site.Features.Add(new Guid("c7c893fd-9cbe-4f40-ad1d-990f69978203"), true);
                                }
                                catch (Exception expub)
                                {
                                    LoggingService.LogErrorInULS("Site Provision Feature Activation Issue" + expub.ToString());
                                }
                            }
                        }
                    }
                });
                LoggingService.LogErrorInULS("RSG.Inside.SPSiteCol.ExternalService - CreateSiteCollection - End");
            }
            catch (Exception ex)
            {
                LoggingService.LogErrorInULS("RSG.Inside.SPSiteCol.ExternalService CreateSiteCollection Issue :" + ex.Message);
            }

            return(isSiteCreated);
        }
        private void RemoveSite(SPSiteCollection sites, Site site, SPSite rootSite)
        {
            /*logger.Debug(string.Format("Processing site: {0}", site.Name));*/
            if (SiteCollectionExists(sites, site.Name))
            {
                /*logger.Debug(string.Format("Site: {0} has been found. Deleting permissions.", site.Name));*/
                var siteToDelete = sites[site.Name];
                foreach (var permission in site.Permissions)
                {
                    /*logger.Debug(string.Format(
                        "Deleting permission level: {0} from group: {1} for site: {2}",
                        permission.PermissionLevelId,
                        permission.GroupName,
                        site.Name));*/
                    GetRootWeb(siteToDelete).RoleAssignments.Remove(GetRootWeb(rootSite).SiteGroups[permission.GroupName]);
                    /*logger.Debug(string.Format("Done. Deleting permission level: {0} from group: {1} for site: {2}",
                        permission.PermissionLevelId,
                        permission.GroupName,
                        site.Name));*/
                }

                /*logger.Debug(string.Format("Done. Deleting permissions for site {0}", site.Name));
                logger.Debug(string.Format("Deleting site: {0} itself", site.Name));*/
                sites.Delete(site.Name);
                /*logger.Debug(string.Format("Done. Deleting site {0}", site.Name));*/
            }
            else
            {
                /*logger.Debug(string.Format("Can't locate site: {0}. Skipped", site.Name));*/
            }

            /*logger.Debug(string.Format("Done. Processing site {0}", site.Name));*/
        }
Exemplo n.º 29
0
        static void Main(string[] args)
        {
            string       site;
            StreamWriter SW;

            try
            {
                if (args.Length == 0)
                {
                    Console.WriteLine("Enter the Web Application URL:");
                    site = Console.ReadLine();
                }
                else
                {
                    site = args[0];
                }

                SPSite           tmpRoot     = new SPSite(site);
                SPSiteCollection tmpRootColl = tmpRoot.WebApplication.Sites;

                //objects for the CSV file generation
                SW = File.AppendText("c:\\VersioningReport.csv");

                //Write the CSV Header
                SW.WriteLine("Site Name, Library, File Name, File URL, Last Modified, No. of Versions, Latest Version Size -KB,Total Versions Size - MB");

                //Enumerate through each site collection
                foreach (SPSite tmpSite in tmpRootColl)
                {
                    //Enumerate through each sub-site
                    foreach (SPWeb tmpWeb in tmpSite.AllWebs)
                    {
                        //Enumerate through each List
                        foreach (SPList tmpList in tmpWeb.Lists)
                        {
                            //Get only Document Libraries & Exclude specific libraries
                            if (tmpList.BaseType == SPBaseType.DocumentLibrary & tmpList.Title != "Workflows" & tmpList.Title != "Master Page Gallery" & tmpList.Title != "Style Library" & tmpList.Title != "Pages")
                            {
                                foreach (SPListItem tmpSPListItem in tmpList.Items)
                                {
                                    if (tmpSPListItem.Versions.Count > 5)
                                    {
                                        SPListItemVersionCollection tmpVerisionCollection = tmpSPListItem.Versions;

                                        //Get the versioning details
                                        foreach (SPListItemVersion tmpVersion in tmpVerisionCollection)
                                        {
                                            int    versionID       = tmpVersion.VersionId;
                                            string strVersionLabel = tmpVersion.VersionLabel;
                                        }

                                        //Get the versioning Size details
                                        double versionSize = 0;
                                        SPFile tmpFile     = tmpWeb.GetFile(tmpWeb.Url + "/" + tmpSPListItem.File.Url);

                                        foreach (SPFileVersion tmpSPFileVersion in tmpFile.Versions)
                                        {
                                            versionSize = versionSize + tmpSPFileVersion.Size;
                                        }
                                        //Convert to MB
                                        versionSize = Math.Round(((versionSize / 1024) / 1024), 2);

                                        string siteName;
                                        if (tmpWeb.IsRootWeb)
                                        {
                                            siteName = tmpWeb.Title + " - Root";
                                        }
                                        else
                                        {
                                            siteName = tmpSite.RootWeb.Title + " - " + tmpWeb.Title;
                                        }

                                        //Log the data to a CSV file where versioning size > 0MB!
                                        if (versionSize > 0)
                                        {
                                            SW.WriteLine(siteName + "," + tmpList.Title + "," + tmpSPListItem.Name + "," + tmpWeb.Url + "/" + tmpSPListItem.Url + "," + tmpSPListItem["Modified"].ToString() + "," + tmpSPListItem.Versions.Count + "," + (tmpSPListItem.File.Length / 1024) + "," + versionSize);
                                        }
                                    }
                                }
                            }
                        }
                    }
                }

                //Close the CSV file object
                SW.Close();

                //Dispose of the Root Site Object
                tmpRoot.Dispose();

                //Just to pause
                Console.WriteLine(@"Versioning Report Generated Successfull at c:\VersioningReport.csv. Press ""Enter"" key to Exit");
                Console.ReadLine();
            }

            catch (Exception ex)
            {
                System.Diagnostics.EventLog.WriteEntry("Get Versioning Report", ex.Message);
            }
        }
Exemplo n.º 30
0
        public override void Execute(Guid targetInstanceId)
        {
            IServiceLocator serviceLocatortest = SharePointServiceLocator.GetCurrent();
            ILogger         loggertest         = serviceLocatortest.GetInstance <ILogger>();

            loggertest.LogToOperations("Executing UoB Delete Old MySite DocLibs Timer Job", EventSeverity.Information);

            base.Execute(targetInstanceId);
            SPWebApplication webApplication  = SPWebApplication.Lookup(new Uri(MySiteUri));
            SPSiteCollection siteCollections = webApplication.Sites;
            bool             recycle         = false;
            bool             armed           = false;

            if (String.Compare(RecyleOrDelete, "recycle", false) == 0)
            {
                recycle = true;
            }
            if (MySiteDeleteArmed)
            {
                armed = true;
            }


            foreach (SPSite siteCollection in siteCollections)
            {
                try
                {
                    string             username           = siteCollection.RootWeb.Site.Owner.LoginName;
                    SPServiceContext   serviceContext     = SPServiceContext.GetContext(siteCollection);
                    UserProfileManager userProfileManager = new UserProfileManager(serviceContext);
                    UserProfile        u = null;
                    try
                    {
                        u = userProfileManager.GetUserProfile(siteCollection.RootWeb.Site.Owner.LoginName);
                        try
                        {
                            if (u["uob-Migrated"].Count > 0)
                            {
                                DateTime dt    = DateTime.Parse(u["uob-Migrated"].Value.ToString());
                                DateTime df    = DateTime.Now;
                                double   weeks = (df - dt).TotalDays / 7;
                                if (weeks > UoBMigrationDeletePeriod)
                                {
                                    string logEntry = string.Empty;
                                    try
                                    {
                                        if (armed)
                                        {
                                            logEntry = "DELETED MYSITE ***MyFiles*** : " + username;
                                            if (recycle)
                                            {
                                                siteCollection.RootWeb.Lists["MyFiles"].Recycle();
                                            }
                                            else
                                            {
                                                siteCollection.RootWeb.Lists["MyFiles"].Delete();
                                            }
                                        }
                                        else
                                        {
                                            logEntry = "DELETE (SOFT) MYSITE MyFiles: " + username;
                                        }
                                    }
                                    catch
                                    {
                                        //todo if deletion failed...
                                    }
                                    finally
                                    {
                                        IServiceLocator serviceLocator = SharePointServiceLocator.GetCurrent();
                                        ILogger         logger         = serviceLocator.GetInstance <ILogger>();
                                        logger.LogToOperations(logEntry, EventSeverity.Information);
                                    }
                                }
                            }
                        }
                        catch
                        {
                            string          logEntry       = "FAILED TO DELETE MYSITE: " + siteCollection.RootWeb.Site.Owner.LoginName;
                            IServiceLocator serviceLocator = SharePointServiceLocator.GetCurrent();
                            ILogger         logger         = serviceLocator.GetInstance <ILogger>();
                            logger.LogToOperations(logEntry, EventSeverity.Error);
                        }
                    }
                    catch (Exception ex)
                    {
                        string          logEntry       = "MYSITE HAS NO PROFILE: " + username;
                        IServiceLocator serviceLocator = SharePointServiceLocator.GetCurrent();
                        ILogger         logger         = serviceLocator.GetInstance <ILogger>();
                        logger.LogToOperations(logEntry, EventSeverity.Warning);
                    }
                }
                catch
                {
                    //ex
                }
                siteCollection.Close();
                siteCollection.Dispose();
            }
        }
Exemplo n.º 31
0
 public SPSiteCollectionFacade(TParentFacade parentFacade, SPSiteCollection sites)
     : base(parentFacade, sites)
 {
 }