using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace GreenTree.Nachtragsmanagement.Core.Plugins { /// /// Plugin finder /// public interface IPluginFinder { /// /// Gets plugin groups /// /// Plugins groups IEnumerable GetPluginGroups(); /// /// Gets plugins /// /// The type of plugins to get. /// Load plugins mode /// Load records allowed only in a specified store; pass 0 to load all records /// Filter by plugin group; pass null to load all records /// Plugins IEnumerable GetPlugins(LoadPluginsMode loadMode = LoadPluginsMode.InstalledOnly, int storeId = 0, string group = null) where T : class, IPlugin; /// /// Get plugin descriptors /// /// Load plugins mode /// Load records allowed only in a specified store; pass 0 to load all records /// Filter by plugin group; pass null to load all records /// Plugin descriptors IEnumerable GetPluginDescriptors(LoadPluginsMode loadMode = LoadPluginsMode.InstalledOnly, int storeId = 0, string group = null); /// /// Get plugin descriptors /// /// The type of plugin to get. /// Load plugins mode /// Load records allowed only in a specified store; pass 0 to load all records /// Filter by plugin group; pass null to load all records /// Plugin descriptors IEnumerable GetPluginDescriptors(LoadPluginsMode loadMode = LoadPluginsMode.InstalledOnly, int storeId = 0, string group = null) where T : class, IPlugin; /// /// Get a plugin descriptor by its system name /// /// Plugin system name /// Load plugins mode /// >Plugin descriptor PluginDescriptor GetPluginDescriptorBySystemName(string systemName, LoadPluginsMode loadMode = LoadPluginsMode.InstalledOnly); /// /// Get a plugin descriptor by its system name /// /// The type of plugin to get. /// Plugin system name /// Load plugins mode /// >Plugin descriptor PluginDescriptor GetPluginDescriptorBySystemName(string systemName, LoadPluginsMode loadMode = LoadPluginsMode.InstalledOnly) where T : class, IPlugin; /// /// Reload plugins /// void ReloadPlugins(); } }