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); }
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; }
/// <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); }
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; }
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); } }
/// <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); }
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); }
/// <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); }
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; // } }
public SPSiteCollectionInstance(ObjectInstance prototype, SPSiteCollection siteCollection) : this(prototype) { if (siteCollection == null) { throw new ArgumentNullException("siteCollection"); } m_siteCollection = siteCollection; }
// 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(); } }
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(); } } }
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; } } } }
/// <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(); } } }
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(); } } }
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); }
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); }
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; } }
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())); }
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(); } } } }
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); }
/// <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; }
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(); } }
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));*/ }
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); } }
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(); } }
public SPSiteCollectionFacade(TParentFacade parentFacade, SPSiteCollection sites) : base(parentFacade, sites) { }