Beispiel #1
0
 /// <summary>
 /// Gets plugins
 /// </summary>
 /// <typeparam name="T">The type of plugins to get.</typeparam>
 /// <param name="loadMode">Load plugins mode</param>
 /// <param name="storeId">Load records allowed only in a specified store; pass 0 to load all records</param>
 /// <param name="group">Filter by plugin group; pass null to load all records</param>
 /// <returns>Plugins</returns>
 public virtual IEnumerable <T> GetPlugins <T>(LoadPluginsMode loadMode = LoadPluginsMode.InstalledOnly,
                                               int storeId = 0, string group = null) where T : class, IPlugin
 {
     return(GetPluginDescriptors <T>(loadMode, storeId, group).Select(p => p.Instance <T>()));
 }
Beispiel #2
0
 /// <summary>
 /// Get a plugin descriptor by its system name
 /// </summary>
 /// <param name="systemName">Plugin system name</param>
 /// <param name="loadMode">Load plugins mode</param>
 /// <returns>>Plugin descriptor</returns>
 public virtual PluginDescriptor GetPluginDescriptorBySystemName(string systemName, LoadPluginsMode loadMode = LoadPluginsMode.InstalledOnly)
 {
     return(GetPluginDescriptors(loadMode)
            .SingleOrDefault(p => p.SystemName.Equals(systemName, StringComparison.InvariantCultureIgnoreCase)));
 }
Beispiel #3
0
 /// <summary>
 /// Get plugin descriptors
 /// </summary>
 /// <typeparam name="T">The type of plugin to get.</typeparam>
 /// <param name="loadMode">Load plugins mode</param>
 /// <param name="storeId">Load records allowed only in a specified store; pass 0 to load all records</param>
 /// <param name="group">Filter by plugin group; pass null to load all records</param>
 /// <returns>Plugin descriptors</returns>
 public virtual IEnumerable <PluginDescriptor> GetPluginDescriptors <T>(LoadPluginsMode loadMode = LoadPluginsMode.InstalledOnly,
                                                                        int storeId = 0, string group = null) where T : class, IPlugin
 {
     return(GetPluginDescriptors(loadMode, storeId, group)
            .Where(p => typeof(T).IsAssignableFrom(p.PluginType)));
 }
Beispiel #4
0
 /// <summary>
 /// Get plugins
 /// </summary>
 /// <typeparam name="TPlugin">The type of plugins to get</typeparam>
 /// <param name="loadMode">Filter by load plugins mode</param>
 /// <param name="customer">Filter by customer; pass null to load all records</param>
 /// <param name="storeId">Filter by store; pass 0 to load all records</param>
 /// <param name="group">Filter by plugin group; pass null to load all records</param>
 /// <returns>Plugins</returns>
 public virtual IEnumerable <TPlugin> GetPlugins <TPlugin>(LoadPluginsMode loadMode = LoadPluginsMode.InstalledOnly,
                                                           Customer customer        = null, int storeId = 0, string group = null) where TPlugin : class, IPlugin
 {
     return(GetPluginDescriptors <TPlugin>(loadMode, customer, storeId, group)
            .Select(descriptor => descriptor.Instance <TPlugin>()));
 }
Beispiel #5
0
 public PluginDescriptor GetPluginDescriptorBySystemName <TPlugin>(string systemName, LoadPluginsMode loadMode = LoadPluginsMode.InstalledOnly,
                                                                   User user = null, string group = null) where TPlugin : class, IPlugin
 {
     return(GetPluginDescriptors <TPlugin>(loadMode, user, group)
            .FirstOrDefault(descriptor => descriptor.SystemName.Equals(systemName, StringComparison.InvariantCultureIgnoreCase)));
 }
Beispiel #6
0
 public IEnumerable <TPlugin> GetPlugins <TPlugin>(LoadPluginsMode loadMode = LoadPluginsMode.InstalledOnly,
                                                   User user = null, string group = null) where TPlugin : class, IPlugin
 {
     return(GetPluginDescriptors <TPlugin>(loadMode, user, group).Select(descriptor => descriptor.Instance <TPlugin>()));
 }
Beispiel #7
0
 /// <summary>
 /// Get a plugin descriptor by its system name
 /// </summary>
 /// <typeparam name="T">The type of plugin to get.</typeparam>
 /// <param name="systemName">Plugin system name</param>
 /// <param name="loadMode">Load plugins mode</param>
 /// <returns>>Plugin descriptor</returns>
 public virtual PluginDescriptor GetPluginDescriptorBySystemName <T>(string systemName, LoadPluginsMode loadMode = LoadPluginsMode.InstalledOnly)
     where T : class, IPlugin
 {
     return(GetPluginDescriptors <T>(loadMode)
            .SingleOrDefault(p => p.SystemName.Equals(systemName, StringComparison.OrdinalIgnoreCase)));
 }
Beispiel #8
0
 public PluginDescriptor GetPluginDescriptorBySystemName(string systemName, LoadPluginsMode loadMode)
 {
     return(GetPluginDescriptors(loadMode).FirstOrDefault(x => x.SystemName.Equals(systemName, StringComparison.InvariantCultureIgnoreCase)));
 }
Beispiel #9
0
 public virtual IEnumerable <T> GetPlugins <T>(LoadPluginsMode loadMode, int storeId, string group) where T : class, IPlugin
 {
     return(GetPluginDescriptors <T>(loadMode, storeId, group).Select(x => x.Instance <T>()));
 }
Beispiel #10
0
 /// <summary>
 /// 获取对应的插件描述
 /// </summary>
 /// <param name="loadMode"></param>
 /// <param name="storeId"></param>
 /// <param name="group"></param>
 /// <returns></returns>
 public virtual IEnumerable <PluginDescriptor> GetPluginDescriptors(LoadPluginsMode loadMode = LoadPluginsMode.InstalledOnly, int storeId = 0, string group = null)
 {
     EnsurePluginsAreLoaded();
     return(_plugins.Where(x => x.Installed == CheckLoadMode(x, loadMode) && AuthenticateStore(x, storeId) && CheckGroup(x, group)));
 }
Beispiel #11
0
 public IEnumerable <PluginDescriptor> GetPluginDescriptors(LoadPluginsMode loadMode = LoadPluginsMode.InstalledOnly, int storeId = 0, string group = null)
 {
     //ensure plugins are loaded
     EnsurePluginsAreLoaded();
     return(_plugins.Where(p => CheckLoadMode(p, loadMode) && AuthenticateStore(p, storeId) && CheckGroup(p, group)));
 }