コード例 #1
0
            public bool UpdatePlugin(Guid pluginId, bool runnerDisabled, ISolvedPluginConfiguration config, IEnumerable <RequirementLayer> layers, IPluginDiscoverer d)
            {
                SolvedConfigStatus s;

                Info = d.FindPlugin(pluginId);
                bool isAvailable = !(Info == null || Info.HasError || RunningError != null);

                if (isAvailable)
                {
                    if (runnerDisabled)
                    {
                        s = SolvedConfigStatus.Disabled;
                    }
                    else
                    {
                        s = config.GetStatus(pluginId);
                        foreach (RequirementLayer l in layers)
                        {
                            PluginRequirement r = l.PluginRequirements.Find(pluginId);
                            if (r != null && (int)r.Requirement > (int)s)
                            {
                                s = (SolvedConfigStatus)r.Requirement;
                            }
                        }
                    }
                }
                else
                {
                    s = SolvedConfigStatus.Disabled;
                }
                return(DoUpdateStatus(isAvailable, s));
            }