public void AddActivatedFeatures(IEnumerable <ActivatedFeature> features) { if (features != null) { ActivatedFeatures.AddRange(features); } }
/// <summary> /// final step in setting up database /// </summary> private void MapActivatedFeaturesToDefinitions() { if (ActivatedFeatures != null && ActivatedFeatures.Any()) { var distinctActivatedFeatureIds = ActivatedFeatures.Select(af => af.Id).Distinct(); foreach (Guid featureId in distinctActivatedFeatureIds) { var activatedFeatureGroup = ActivatedFeatures.Where(af => af.Id == featureId); var featureDef = FeatureDefinitions.FirstOrDefault(fd => fd.Id == featureId); if (featureDef != null) { // add activated features to feature definition featureDef.ActivatedFeatures.AddRange(activatedFeatureGroup); } else { // fyi - if we get here, we have most likely a group of faulty features ... // create feature definition and add features var newFeatureDef = FeatureDefinition.GetFeatureDefinition(activatedFeatureGroup); FeatureDefinitions.Add(newFeatureDef); } } } }
private void GetSiteFeatuesAndBelow(SPSite site, Guid webAppId) { if (site != null) { var parent = FeatureParent.GetFeatureParent(site); AddParentToHierarchyAndParentsList(webAppId, parent, true); var siteFeatures = site.Features; if (siteFeatures != null && siteFeatures.Count > 0) { var activatedSiCoFeatures = ActivatedFeature.MapSpFeatureToActivatedFeature(siteFeatures, parent); ActivatedFeatures.AddRange(activatedSiCoFeatures); } var webs = site.AllWebs; if (webs != null && webs.Count > 0) { foreach (SPWeb w in webs) { GetWebFeatures(w, site.ID); w.Dispose(); } } } }
public void AddChildren(List <Location> childLocations, List <ActivatedFeature> activatedFeatures, List <FeatureDefinition> definitions) { if (childLocations != null) { ChildLocations.AddRange(childLocations); } if (activatedFeatures != null) { ActivatedFeatures.AddRange(activatedFeatures); } if (definitions != null) { Definitions.AddRange(definitions); } }
public void AddChild(Location location, IEnumerable <ActivatedFeature> activatedFeatures, IEnumerable <FeatureDefinition> definitions) { if (location != null) { ChildLocations.Add(location); } if (activatedFeatures != null) { ActivatedFeatures.AddRange(activatedFeatures); } if (definitions != null) { Definitions.AddRange(definitions); } }
private void GetWebFeatures(SPWeb web, Guid SiteCollectionId) { if (web != null) { var parent = FeatureParent.GetFeatureParent(web); AddParentToHierarchyAndParentsList(SiteCollectionId, parent, false); var webFeatures = web.Features; if (webFeatures != null && webFeatures.Count > 0) { var activatedWebFeatures = ActivatedFeature.MapSpFeatureToActivatedFeature(webFeatures, parent); ActivatedFeatures.AddRange(activatedWebFeatures); } } }
/// <summary> /// Get activated features from farm and build up SharePointParentHierarchy /// </summary> private void LoadAllActivatedFeaturesAndHierarchy() { SPSecurity.RunWithElevatedPrivileges(delegate() { var farm = FarmRead.GetFarm(); // Get Farm features var farmFeatures = farm.Features; var parent = FeatureParent.GetFeatureParent(farm); FarmId = parent.Id; SharePointParentHierarchy.Add(FarmId, new List <FeatureParent>()); Parents.Add(parent); if (farmFeatures != null) { var activatedFarmFeatures = ActivatedFeature.MapSpFeatureToActivatedFeature(farmFeatures, parent); ActivatedFeatures.AddRange(activatedFarmFeatures); } // Get Web App features var adminWebApps = FarmRead.GetWebApplicationsAdmin(); // Central Admin var caIndex = 1; foreach (SPWebApplication adminApp in adminWebApps) { if (adminApp != null) { var index = (adminApp.Features.Count == 1 && caIndex == 1) ? string.Empty : " " + caIndex.ToString(); var caParent = FeatureParent.GetFeatureParent(adminApp, "Central Admin" + index); AddParentToHierarchyAndParentsList(FarmId, caParent, true); var adminFeatures = adminApp.Features; if (adminFeatures != null && adminFeatures.Count > 0) { var activatedCaWebAppFeatures = ActivatedFeature.MapSpFeatureToActivatedFeature(adminFeatures, caParent); ActivatedFeatures.AddRange(activatedCaWebAppFeatures); } var sites = adminApp.Sites; if (sites != null && sites.Count > 0) { foreach (SPSite s in sites) { GetSiteFeatuesAndBelow(s, caParent.Id); s.Dispose(); } } } } // Content Web Apps var contentWebApps = FarmRead.GetWebApplicationsContent(); foreach (SPWebApplication webApp in contentWebApps) { if (webApp != null) { var waAsParent = FeatureParent.GetFeatureParent(webApp); AddParentToHierarchyAndParentsList(FarmId, waAsParent, true); var waFeatures = webApp.Features; if (waFeatures != null && waFeatures.Count > 0) { var activatedWebAppFeatures = ActivatedFeature.MapSpFeatureToActivatedFeature(waFeatures, waAsParent); ActivatedFeatures.AddRange(activatedWebAppFeatures); } var sites = webApp.Sites; if (sites != null && sites.Count > 0) { foreach (SPSite s in sites) { GetSiteFeatuesAndBelow(s, waAsParent.Id); s.Dispose(); } } } } }); }