| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 | #pragma warning disable CS1591using System;using MediaBrowser.Model.Plugins;using Microsoft.Extensions.DependencyInjection;namespace MediaBrowser.Common.Plugins{    /// <summary>    /// Interface IPlugin.    /// </summary>    public interface IPlugin    {        /// <summary>        /// Gets the name of the plugin.        /// </summary>        /// <value>The name.</value>        string Name { get; }        /// <summary>        /// Gets the description.        /// </summary>        /// <value>The description.</value>        string Description { get; }        /// <summary>        /// Gets the unique id.        /// </summary>        /// <value>The unique id.</value>        Guid Id { get; }        /// <summary>        /// Gets the plugin version.        /// </summary>        /// <value>The version.</value>        Version Version { get; }        /// <summary>        /// Gets the path to the assembly file.        /// </summary>        /// <value>The assembly file path.</value>        string AssemblyFilePath { get; }        /// <summary>        /// Gets a value indicating whether the plugin can be uninstalled.        /// </summary>        bool CanUninstall { get; }        /// <summary>        /// Gets the full path to the data folder, where the plugin can store any miscellaneous files needed.        /// </summary>        /// <value>The data folder path.</value>        string DataFolderPath { get; }        /// <summary>        /// Gets the plugin info.        /// </summary>        /// <returns>PluginInfo.</returns>        PluginInfo GetPluginInfo();        /// <summary>        /// Called when just before the plugin is uninstalled from the server.        /// </summary>        void OnUninstalling();        /// <summary>        /// Registers the plugin's services to the service collection.        /// </summary>        /// <param name="serviceCollection">The service collection.</param>        void RegisterServices(IServiceCollection serviceCollection);        /// <summary>        /// Unregisters the plugin's services from the service collection.        /// </summary>        /// <param name="serviceCollection">The service collection.</param>        void UnregisterServices(IServiceCollection serviceCollection);    }    public interface IHasPluginConfiguration    {        /// <summary>        /// Gets the type of configuration this plugin uses.        /// </summary>        /// <value>The type of the configuration.</value>        Type ConfigurationType { get; }        /// <summary>        /// Gets the plugin's configuration.        /// </summary>        /// <value>The configuration.</value>        BasePluginConfiguration Configuration { get; }        /// <summary>        /// Completely overwrites the current configuration with a new copy        /// Returns true or false indicating success or failure.        /// </summary>        /// <param name="configuration">The configuration.</param>        /// <exception cref="ArgumentNullException"><c>configuration</c> is <c>null</c>.</exception>        void UpdateConfiguration(BasePluginConfiguration configuration);        void SetStartupInfo(Action<string> directoryCreateFn);    }}
 |