/// <summary>activate features in the whole farm</summary>
        public void TraverseActivateFeaturesInFarm(List <Feature> features)
        {
            ActivateFeaturesInFarm(features);

            foreach (SPWebApplication webapp in WebAppEnumerator.GetAllWebApps())
            {
                TraverseActivateFeaturesInWebApplication(webapp, features);
            }
        }
        /// <summary>activate features in the whole farm</summary>
        public void TraverseActivateFeaturesInFarm(Forcefulness forcefulness)
        {
            _forcefulness = forcefulness;
            ActivateFeaturesInFarm();

            foreach (WebAppEnumerator.WebAppInfo webappInfo  in WebAppEnumerator.GetAllWebApps())
            {
                TraverseActivateFeaturesInWebApplication(webappInfo.WebApp, forcefulness);
            }
        }
        private void FindFeatureActivations()
        {
            //first, Look in Farm
            try
            {
                CheckFarm();
            }
            catch (Exception exc)
            {
                OnException(exc,
                            "Exception checking farm"
                            );
            }

            // check all web apps and everything under
            foreach (WebAppEnumerator.WebAppInfo webappInfo in WebAppEnumerator.GetAllWebApps())
            {
                SPWebApplication webApp = webappInfo.WebApp;
                try
                {
                    CheckWebApp(webApp);
                    if (stopAtFirstHit && activationsFound > 0)
                    {
                        return;
                    }
                }
                catch (Exception exc)
                {
                    OnException(exc,
                                "Exception checking webapp: " + LocationManager.SafeGetWebAppUrl(webApp)
                                );
                }

                try
                {
                    // check all sites and everything under
                    EnumerateWebAppSites(webApp);
                    if (stopAtFirstHit && activationsFound > 0)
                    {
                        return;
                    }
                }
                catch (Exception exc)
                {
                    OnException(exc,
                                "Exception enumerating sites of webapp: " + LocationManager.SafeGetWebAppUrl(webApp)
                                );
                }
            }
            return;
        }