// Resolves all plugins' status, regarding User, system and LiveUser configuration
        void ResolveConfiguration()
        {
            HashSet <Guid> toProcess = new HashSet <Guid>();

            foreach (IPluginStatus s in _cfg.GetSystemConfiguration(false).PluginStatusCollection)
            {
                toProcess.Add(s.PluginId);
            }
            foreach (IPluginStatus s in _cfg.GetUserConfiguration(false).PluginStatusCollection)
            {
                toProcess.Add(s.PluginId);
            }
            foreach (ILiveUserAction s in _cfg.GetUserConfiguration(false).LiveUserConfiguration)
            {
                toProcess.Add(s.PluginId);
            }
            foreach (Guid g in _dic.Keys)
            {
                toProcess.Add(g);
            }

            foreach (Guid g in toProcess)
            {
                SetStatus(g);
            }
        }
        public SolvedPluginConfiguration(ConfigManagerImpl cfg)
        {
            _cfg = cfg;
            _dic = new Dictionary <Guid, SolvedPluginConfigElement>();

            //Triggered when a PluginStatus is set
            _cfg.GetUserConfiguration(false).PluginStatusCollection.Changed   += (o, e) => OnPluginConfigurationChanged(e.PluginID);
            _cfg.GetSystemConfiguration(false).PluginStatusCollection.Changed += (o, e) => OnPluginConfigurationChanged(e.PluginID);
            _cfg.GetUserConfiguration(false).LiveUserConfiguration.Changed    += (o, e) => OnPluginConfigurationChanged(e.PluginID);

            ResolveConfiguration();
        }