using Nop.Core.Domain.Customers; namespace Nop.Services.Plugins; /// /// Represents a plugin service /// public partial interface IPluginService { /// /// Get plugin descriptors /// /// The type of plugins to get /// Filter by load plugins mode /// Filter by customer; pass null to load all records /// Filter by store; pass 0 to load all records /// Filter by plugin group; pass null to load all records /// Filter by plugin friendly name; pass null to load all records /// Filter by plugin author; pass null to load all records /// System name of the plugin to define dependencies /// /// A task that represents the asynchronous operation /// The task result contains the plugin descriptors /// Task> GetPluginDescriptorsAsync(LoadPluginsMode loadMode = LoadPluginsMode.InstalledOnly, Customer customer = null, int storeId = 0, string group = null, string dependsOnSystemName = "", string friendlyName = null, string author = null) where TPlugin : class, IPlugin; /// /// Get a plugin descriptor by the system name /// /// The type of plugin to get /// Plugin system name /// Load plugins mode /// Filter by customer; pass null to load all records /// Filter by store; pass 0 to load all records /// Filter by plugin group; pass null to load all records /// /// A task that represents the asynchronous operation /// The task result contains the >Plugin descriptor /// Task GetPluginDescriptorBySystemNameAsync(string systemName, LoadPluginsMode loadMode = LoadPluginsMode.InstalledOnly, Customer customer = null, int storeId = 0, string group = null) where TPlugin : class, IPlugin; /// /// Get plugins /// /// The type of plugins to get /// Filter by load plugins mode /// Filter by customer; pass null to load all records /// Filter by store; pass 0 to load all records /// Filter by plugin group; pass null to load all records /// /// A task that represents the asynchronous operation /// The task result contains the plugins /// Task> GetPluginsAsync(LoadPluginsMode loadMode = LoadPluginsMode.InstalledOnly, Customer customer = null, int storeId = 0, string group = null) where TPlugin : class, IPlugin; /// /// Find a plugin by the type which is located into the same assembly as a plugin /// /// Type /// Plugin IPlugin FindPluginByTypeInAssembly(Type typeInAssembly); /// /// Get plugin logo URL /// /// Plugin descriptor /// /// A task that represents the asynchronous operation /// The task result contains the logo URL /// Task GetPluginLogoUrlAsync(PluginDescriptor pluginDescriptor); /// /// Prepare plugin to the installation /// /// Plugin system name /// Customer /// Specifies whether to check plugin dependencies /// A task that represents the asynchronous operation Task PreparePluginToInstallAsync(string systemName, Customer customer = null, bool checkDependencies = true); /// /// Prepare plugin to the uninstallation /// /// Plugin system name /// A task that represents the asynchronous operation Task PreparePluginToUninstallAsync(string systemName); /// /// Prepare plugin to the removing /// /// Plugin system name /// A task that represents the asynchronous operation Task PreparePluginToDeleteAsync(string systemName); /// /// Reset changes /// void ResetChanges(); /// /// Clear installed plugins list /// void ClearInstalledPluginsList(); /// /// Install plugins /// /// A task that represents the asynchronous operation Task InstallPluginsAsync(); /// /// Uninstall plugins /// /// A task that represents the asynchronous operation Task UninstallPluginsAsync(); /// /// Delete plugins /// /// A task that represents the asynchronous operation Task DeletePluginsAsync(); /// /// Update plugins /// /// A task that represents the asynchronous operation Task UpdatePluginsAsync(); /// /// Check whether application restart is required to apply changes to plugins /// /// Result of check bool IsRestartRequired(); /// /// Get names of incompatible plugins /// /// List of plugin names IDictionary GetIncompatiblePlugins(); /// /// Get all assembly loaded collisions /// /// List of plugin loaded assembly info IList GetAssemblyCollisions(); }