Esempio n. 1
0
        internal static List <SPFeatureDefinition> GetAllConfigurationPackages(SPContext context)
        {
            List <SPFeatureDefinition> featureDefinitions = new List <SPFeatureDefinition>();
            List <SPFeatureDefinition> allFeatures        = new List <SPFeatureDefinition>();

            if (SPFarm.Local.BuildVersion > new Version("14.0.0.0"))
            {
                //Load handler for sandbox solutions
                try
                {
                    ConfigurationPackageHandler handler = GetConfigurationPackageHandlerForSandbox();
                    allFeatures = handler.GetConfigurationPackages(context);
                }
                catch
                {
                }
            }

            SPFeatureDefinitionCollection farmFeatures = SPFarm.Local.FeatureDefinitions;

            foreach (SPFeatureDefinition farmFeature in farmFeatures)
            {
                allFeatures.Add(farmFeature);
            }

            foreach (SPFeatureDefinition feature in allFeatures)
            {
                if (feature.Properties["SPSIN_ConfigPackage_Title"] != null &&
                    !string.IsNullOrEmpty(feature.Properties["SPSIN_ConfigPackage_Title"].Value))
                {
                    featureDefinitions.Add(feature);
                }
            }
            return(featureDefinitions);
        }
        public static void DeactivateFeatureInWeb(string strSiteUrl, string strFeatureTitle)
        {
            using (SPSite site = new SPSite(strSiteUrl))
            {
                System.Globalization.CultureInfo cultureInfo           = new System.Globalization.CultureInfo(1033);
                SPFeatureDefinitionCollection    featureDefinitionColl = SPFarm.Local.FeatureDefinitions;
                SPWebCollection webColl = site.AllWebs;
                foreach (SPFeatureDefinition featureDefinition in featureDefinitionColl)
                {
                    if (featureDefinition.GetTitle(cultureInfo) == strFeatureTitle)
                    {
                        Guid guidFeatureDefinitionID = featureDefinition.Id;



                        foreach (SPWeb web in webColl)
                        {
                            if (featureDefinition.Scope == SPFeatureScope.Web)
                            {
                                SPFeatureCollection featureColl = web.Features;
                                featureColl.Remove(guidFeatureDefinitionID, true);
                            }
                            web.Dispose();
                        }
                    }
                }
            }
        }
        public SPFeatureDefinitionCollectionInstance(ObjectInstance prototype, SPFeatureDefinitionCollection featureDefinitionCollection)
            : this(prototype)
        {
            if (featureDefinitionCollection == null)
            {
                throw new ArgumentNullException("featureDefinitionCollection");
            }

            m_featureDefinitionCollection = featureDefinitionCollection;
        }
        /// <summary>forcefully removes a feature definition from the farm feature definition collection</summary>
        /// <param name="id">Feature Definition ID</param>
        public static void UninstallFeatureDefinition(Guid id, int compatibilityLevel, Forcibility forcibility)
        {
            bool force = (forcibility == Forcibility.Forcible ? true : false);
            SPFeatureDefinitionCollection featuredefs = SPFarm.Local.FeatureDefinitions;

#if (SP2013)
            {
                featuredefs.Remove(id, compatibilityLevel, force);
            }
#else
            {
                featuredefs.Remove(id, force);
            }
#endif
        }
Esempio n. 5
0
        /// <summary>
        /// Maps a list of SPFeatureDefinitions To FeatureDefinitions
        /// </summary>
        /// <param name="definitions">list of SPFeatureDefinitions</param>
        /// <returns>list of FeatureDefinitions</returns>
        public static List <IFeatureDefinition> GetFeatureDefinition(SPFeatureDefinitionCollection definitions)
        {
            if (definitions == null)
            {
                throw new ArgumentNullException("Parameter definitions must not be null!");
            }

            var fDefs = new List <IFeatureDefinition>();

            foreach (SPFeatureDefinition spfd in definitions)
            {
                var fd = GetFeatureDefinition(spfd);
                fDefs.Add(fd);
            }

            return(fDefs);
        }
Esempio n. 6
0
        private Guid GetFeatureID()
        {
            System.Globalization.CultureInfo cultureInfo        = new System.Globalization.CultureInfo(1033);
            SPFeatureDefinitionCollection    featureDefinitions = SPFarm.Local.FeatureDefinitions;

            foreach (SPFeatureDefinition featureDefinition in featureDefinitions)
            {
                if (featureDefinition.GetTitle(cultureInfo).ToLower() == FeatureTitle.ToLower())
                {
                    if (featureDefinition.Scope == GetTargetScope())
                    {
                        return(featureDefinition.Id);
                    }
                }
            }
            return(Guid.Empty);
        }
        public FeatureCollectionDefinitionNode(object spParent, SPFeatureDefinitionCollection featureDefinitions)
        {
            this.Text = SPMLocalization.GetString("FeaturesDefinitions_Text");
            this.ToolTipText = SPMLocalization.GetString("FeaturesDefinitions_ToolTip");
            this.Name = "FeaturesDefinitions";
            this.Tag = featureDefinitions;
            this.SPParent = spParent;
            this.FeatureDefinitions = featureDefinitions;

            int index = Program.Window.Explorer.AddImage(this.ImageUrl());
            this.ImageIndex = index;
            this.SelectedImageIndex = index;

            string path = SPMPaths.ImageDirectory;
            InstalledIndex = Program.Window.Explorer.AddImage(path + "ewr217s.gif");
            UnInstalledIndex = Program.Window.Explorer.AddImage(path + "ewr238m.gif");

            this.Nodes.Add("Dummy");
        }
Esempio n. 8
0
        private XmlNode GetFarmFeatureDefinitionsNode(SPFeatureDefinitionCollection farmFeatureDefinitions, XmlNode farmFeatureDefinitionsNode)
        {
            XmlNode countAttribute = FarmXml.CreateAttribute("Count");

            countAttribute.Value = farmFeatureDefinitions.Count.ToString();
            farmFeatureDefinitionsNode.Attributes.SetNamedItem(countAttribute);

            foreach (SPFeatureDefinition featureDefinition in farmFeatureDefinitions)
            {
                XmlNode featureDefinitionNode = FarmXml.CreateElement("FeatureDefinition");
                List <AttributeValuePair> featureDefAttributes = SPAttributes.GetSPFeatureDefinitionAttributes(featureDefinition);
                foreach (AttributeValuePair featureDefAttribute in featureDefAttributes)
                {
                    featureDefinitionNode.Attributes.SetNamedItem(GetXmlAttribute(featureDefAttribute));
                }
                farmFeatureDefinitionsNode.AppendChild(featureDefinitionNode);
            }
            return(farmFeatureDefinitionsNode);
        }
        /// <summary>Adds feature definitions to the custom Feature class</summary>
        /// <param name="spFeatureDefinitions"></param>
        public void AddFeatures(SPFeatureDefinitionCollection spFeatureDefinitions)
        {
            this._spfeatureDefinitions = spFeatureDefinitions;

            foreach (SPFeatureDefinition spfeatureDef in spFeatureDefinitions)
            {
                Feature feature = new Feature(spfeatureDef.Id);
                try
                {
                    feature.Scope = spfeatureDef.Scope;
                    feature.Name  = spfeatureDef.GetTitle(System.Threading.Thread.CurrentThread.CurrentCulture);
                }
                catch (Exception exc)
                {
                    feature.AppendExceptionMsg(exc);
                }

                this._features.Add(feature);
            }
        }
Esempio n. 10
0
        /// <summary>Adds feature definitions to the custom Feature class</summary>
        /// <param name="spFeatureDefinitions"></param>
        public void AddFeatures(SPFeatureDefinitionCollection spFeatureDefinitions)
        {
            this._spfeatureDefinitions = spFeatureDefinitions;

            foreach (SPFeatureDefinition spfeatureDef in spFeatureDefinitions)
            {
                Feature feature = new Feature(spfeatureDef.Id);
                try
                {
                    feature.Scope = spfeatureDef.Scope;
                    feature.Name  = spfeatureDef.GetTitle(System.Threading.Thread.CurrentThread.CurrentCulture);
                }
                catch (Exception exc)
                {
                    feature.AppendExceptionMsg(exc);
                }

                this._features.Add(feature);
            }
        }
Esempio n. 11
0
        public FeatureCollectionDefinitionNode(object spParent, SPFeatureDefinitionCollection featureDefinitions)
        {
            this.Text               = SPMLocalization.GetString("FeaturesDefinitions_Text");
            this.ToolTipText        = SPMLocalization.GetString("FeaturesDefinitions_ToolTip");
            this.Name               = "FeaturesDefinitions";
            this.Tag                = featureDefinitions;
            this.SPParent           = spParent;
            this.FeatureDefinitions = featureDefinitions;

            int index = Program.Window.Explorer.AddImage(this.ImageUrl());

            this.ImageIndex         = index;
            this.SelectedImageIndex = index;

            string path = SPMPaths.ImageDirectory;

            InstalledIndex   = Program.Window.Explorer.AddImage(path + "ewr217s.gif");
            UnInstalledIndex = Program.Window.Explorer.AddImage(path + "ewr238m.gif");

            this.Nodes.Add("Dummy");
        }
        /// <summary>forcefully removes a feature definition from the farm feature definition collection</summary>
        /// <param name="id">Feature Definition ID</param>
        public static void ForceUninstallFeatureDefinition(Guid id, int compatibilityLevel)
        {
            SPFeatureDefinitionCollection featuredefs = SPFarm.Local.FeatureDefinitions;

            #if (SP2013)
            {
                featuredefs.Remove(id, compatibilityLevel, true);
            }
            #elif (SP2010)
            {
                featuredefs.Remove(id, true);
            }
            #elif (SP2007)
            {
                featuredefs.Remove(id, true);
            }
            #else
            {
                throw new Exception("Unspecified SharePoint Version");
            }
            #endif
        }
        public static void ActivateFeatureInFarm(string strFeatureTitle)
        {
            SPFarm       farm       = SPFarm.Local;
            SPWebService webService = farm.Services.GetValue <SPWebService>("");

            System.Globalization.CultureInfo cultureInfo           = new System.Globalization.CultureInfo(1033);
            SPFeatureDefinitionCollection    featureDefinitionColl = SPFarm.Local.FeatureDefinitions;

            foreach (SPFeatureDefinition featureDefinition in featureDefinitionColl)
            {
                if (featureDefinition.GetTitle(cultureInfo) == strFeatureTitle)
                {
                    Guid guidFeatureDefinitionID = featureDefinition.Id;

                    if (featureDefinition.Scope == SPFeatureScope.Farm)
                    {
                        SPFeatureCollection featureColl = webService.Features;
                        featureColl.Add(guidFeatureDefinitionID, true);
                    }
                }
            }
        }
Esempio n. 14
0
        internal static List <PackageRepository> LoadPackageRepositories(SPWeb web)
        {
            SPSite site = web.Site;

            List <PackageRepository> stores = new List <PackageRepository>();

            SPFeatureDefinitionCollection features = SPFarm.Local.FeatureDefinitions;



            foreach (SPFeatureDefinition definition in features)
            {
                if (definition != null
                    &&
                    definition.Properties["SPSIN_SINStoreRepository_Assembly"] != null
                    &&
                    definition.Properties["SPSIN_SINStoreRepository_Class"] != null
                    )
                {
                    bool isActive = false;
                    switch (definition.Scope)
                    {
                    case SPFeatureScope.Farm:
                        if (SPWebService.ContentService.Features[definition.Id] != null)
                        {
                            isActive = true;
                        }
                        break;

                    case SPFeatureScope.Site:
                        if (site.Features[definition.Id] != null)
                        {
                            isActive = true;
                        }
                        break;

                    case SPFeatureScope.Web:
                        if (web.Features[definition.Id] != null)
                        {
                            isActive = true;
                        }
                        break;

                    case SPFeatureScope.WebApplication:
                        if (site.WebApplication.Features[definition.Id] != null)
                        {
                            isActive = true;
                        }
                        break;

                    default:
                        break;
                    }
                    if (isActive)
                    {
                        try
                        {
                            string            receiverAssembly = definition.Properties["SPSIN_SINStoreRepository_Assembly"].Value;
                            string            receiverClass    = definition.Properties["SPSIN_SINStoreRepository_Class"].Value;
                            Assembly          assembly         = Assembly.Load(receiverAssembly);
                            PackageRepository repositoryItem   = (PackageRepository)assembly.CreateInstance(receiverClass);

                            stores.Add(repositoryItem);
                        }
                        catch
                        {
                            // Cannot load store assembly
                        }
                    }
                }
            }

            return(stores);
        }