using Nop.Core.Domain.Customers; namespace Nop.Services.Plugins; /// /// Represents a plugin manager /// /// Type of plugin public partial interface IPluginManager where TPlugin : class, IPlugin { /// /// Load all plugins /// /// Filter by customer; pass null to load all plugins /// Filter by store; pass 0 to load all plugins /// /// A task that represents the asynchronous operation /// The task result contains the list of plugins /// Task> LoadAllPluginsAsync(Customer customer = null, int storeId = 0); /// /// Load plugin by system name /// /// System name /// Filter by customer; pass null to load all plugins /// Filter by store; pass 0 to load all plugins /// /// A task that represents the asynchronous operation /// The task result contains the plugin /// Task LoadPluginBySystemNameAsync(string systemName, Customer customer = null, int storeId = 0); /// /// Load active plugins /// /// System names of active plugins /// Filter by customer; pass null to load all plugins /// Filter by store; pass 0 to load all plugins /// /// A task that represents the asynchronous operation /// The task result contains the list of active plugins /// Task> LoadActivePluginsAsync(List systemNames, Customer customer = null, int storeId = 0); /// /// Check whether the passed plugin is active /// /// Plugin to check /// System names of active plugins /// Result bool IsPluginActive(TPlugin plugin, List systemNames); /// /// Get plugin logo URL /// /// Plugin /// /// A task that represents the asynchronous operation /// The task result contains the logo URL /// Task GetPluginLogoUrlAsync(TPlugin plugin); }