diff options
Diffstat (limited to 'src/main.lib/Plugins/Interfaces')
8 files changed, 59 insertions, 60 deletions
diff --git a/src/main.lib/Plugins/Interfaces/ICore.cs b/src/main.lib/Plugins/Interfaces/ICore.cs index 3b90ff0..a3a700b 100644 --- a/src/main.lib/Plugins/Interfaces/ICore.cs +++ b/src/main.lib/Plugins/Interfaces/ICore.cs @@ -1,4 +1,7 @@ -using System; +using PKISharp.WACS.Services; +using PKISharp.WACS.Services.Serialization; +using System; +using System.Threading.Tasks; namespace PKISharp.WACS.Plugins.Interfaces { @@ -43,6 +46,21 @@ namespace PKISharp.WACS.Plugins.Interfaces (bool, string?) Disabled { get; } } + public interface IPluginOptionsFactory<T>: IPluginOptionsFactory where T: PluginOptions + { + /// <summary> + /// Check or get configuration information needed (interactive) + /// </summary> + /// <param name="target"></param> + Task<T?> Aquire(IInputService inputService, RunLevel runLevel); + + /// <summary> + /// Check information needed (unattended) + /// </summary> + /// <param name="target"></param> + Task<T?> Default(); + } + public interface INull { } public interface IIgnore { } diff --git a/src/main.lib/Plugins/Interfaces/ICsrPluginOptionsFactory.cs b/src/main.lib/Plugins/Interfaces/ICsrPluginOptionsFactory.cs index af45be2..39005c1 100644 --- a/src/main.lib/Plugins/Interfaces/ICsrPluginOptionsFactory.cs +++ b/src/main.lib/Plugins/Interfaces/ICsrPluginOptionsFactory.cs @@ -1,21 +1,6 @@ using PKISharp.WACS.Plugins.Base.Options; -using PKISharp.WACS.Services; -using System.Threading.Tasks; namespace PKISharp.WACS.Plugins.Interfaces { - public interface ICsrPluginOptionsFactory : IPluginOptionsFactory - { - /// <summary> - /// Check or get information needed for store (interactive) - /// </summary> - /// <param name="target"></param> - Task<CsrPluginOptions?> Aquire(IInputService inputService, RunLevel runLevel); - - /// <summary> - /// Check information needed for store (unattended) - /// </summary> - /// <param name="target"></param> - Task<CsrPluginOptions?> Default(); - } + public interface ICsrPluginOptionsFactory : IPluginOptionsFactory<CsrPluginOptions> {} } diff --git a/src/main.lib/Plugins/Interfaces/IInstallationPlugin.cs b/src/main.lib/Plugins/Interfaces/IInstallationPlugin.cs index 0732b06..b4272b5 100644 --- a/src/main.lib/Plugins/Interfaces/IInstallationPlugin.cs +++ b/src/main.lib/Plugins/Interfaces/IInstallationPlugin.cs @@ -16,6 +16,6 @@ namespace PKISharp.WACS.Plugins.Interfaces /// <param name="renewal"></param> /// <param name="newCertificateInfo"></param> /// <param name="oldCertificateInfo"></param> - Task Install(IEnumerable<IStorePlugin> stores, CertificateInfo newCertificateInfo, CertificateInfo? oldCertificateInfo); + Task Install(Target target, IEnumerable<IStorePlugin> stores, CertificateInfo newCertificateInfo, CertificateInfo? oldCertificateInfo); } } diff --git a/src/main.lib/Plugins/Interfaces/IOrderPlugin.cs b/src/main.lib/Plugins/Interfaces/IOrderPlugin.cs new file mode 100644 index 0000000..4b59586 --- /dev/null +++ b/src/main.lib/Plugins/Interfaces/IOrderPlugin.cs @@ -0,0 +1,10 @@ +using PKISharp.WACS.DomainObjects; +using System.Collections.Generic; + +namespace PKISharp.WACS.Plugins.Interfaces +{ + public interface IOrderPlugin + { + IEnumerable<Order> Split(Renewal renewal, Target target); + } +} diff --git a/src/main.lib/Plugins/Interfaces/IOrderPluginOptionsFactory.cs b/src/main.lib/Plugins/Interfaces/IOrderPluginOptionsFactory.cs new file mode 100644 index 0000000..446b2b2 --- /dev/null +++ b/src/main.lib/Plugins/Interfaces/IOrderPluginOptionsFactory.cs @@ -0,0 +1,16 @@ +using PKISharp.WACS.DomainObjects; +using PKISharp.WACS.Plugins.Base.Options; + +namespace PKISharp.WACS.Plugins.Interfaces +{ + public interface IOrderPluginOptionsFactory : IPluginOptionsFactory<OrderPluginOptions> + { + /// <summary> + /// Is the order splitting option available for a specific target? + /// Used to rule out unfit orders + /// </summary> + /// <param name="target"></param> + /// <returns></returns> + bool CanProcess(Target target); + } +} diff --git a/src/main.lib/Plugins/Interfaces/IResolver.cs b/src/main.lib/Plugins/Interfaces/IResolver.cs index 85315ab..6a25448 100644 --- a/src/main.lib/Plugins/Interfaces/IResolver.cs +++ b/src/main.lib/Plugins/Interfaces/IResolver.cs @@ -8,18 +8,22 @@ namespace PKISharp.WACS.Plugins.Interfaces { public interface IResolver { + Task<ITargetPluginOptionsFactory> GetTargetPlugin(ILifetimeScope scope); + + Task<IValidationPluginOptionsFactory> GetValidationPlugin(ILifetimeScope scope, Target target); + + Task<IOrderPluginOptionsFactory> GetOrderPlugin(ILifetimeScope scope, Target target); + + Task<ICsrPluginOptionsFactory> GetCsrPlugin(ILifetimeScope scope); + + Task<IStorePluginOptionsFactory?> GetStorePlugin(ILifetimeScope scope, IEnumerable<IStorePluginOptionsFactory> chosen); + Task<IInstallationPluginOptionsFactory?> GetInstallationPlugin( ILifetimeScope scope, IEnumerable<Type> storeType, IEnumerable<IInstallationPluginOptionsFactory> chosen); - Task<IStorePluginOptionsFactory?> GetStorePlugin(ILifetimeScope scope, - IEnumerable<IStorePluginOptionsFactory> chosen); - Task<ITargetPluginOptionsFactory> GetTargetPlugin(ILifetimeScope scope); - Task<ICsrPluginOptionsFactory> GetCsrPlugin(ILifetimeScope scope); - - Task<IValidationPluginOptionsFactory> GetValidationPlugin(ILifetimeScope scope, Target target); } }
\ No newline at end of file diff --git a/src/main.lib/Plugins/Interfaces/IStorePluginOptionsFactory.cs b/src/main.lib/Plugins/Interfaces/IStorePluginOptionsFactory.cs index 3becd42..26c93c7 100644 --- a/src/main.lib/Plugins/Interfaces/IStorePluginOptionsFactory.cs +++ b/src/main.lib/Plugins/Interfaces/IStorePluginOptionsFactory.cs @@ -1,24 +1,9 @@ using PKISharp.WACS.Plugins.Base.Options; -using PKISharp.WACS.Services; -using System.Threading.Tasks; namespace PKISharp.WACS.Plugins.Interfaces { /// <summary> /// StorePluginFactory interface /// </summary> - public interface IStorePluginOptionsFactory : IPluginOptionsFactory - { - /// <summary> - /// Check or get information needed for store (interactive) - /// </summary> - /// <param name="target"></param> - Task<StorePluginOptions?> Aquire(IInputService inputService, RunLevel runLevel); - - /// <summary> - /// Check information needed for store (unattended) - /// </summary> - /// <param name="target"></param> - Task<StorePluginOptions?> Default(); - } + public interface IStorePluginOptionsFactory : IPluginOptionsFactory<StorePluginOptions> { } } diff --git a/src/main.lib/Plugins/Interfaces/ITargetPluginOptionsFactory.cs b/src/main.lib/Plugins/Interfaces/ITargetPluginOptionsFactory.cs index d9b13d5..bff5c1e 100644 --- a/src/main.lib/Plugins/Interfaces/ITargetPluginOptionsFactory.cs +++ b/src/main.lib/Plugins/Interfaces/ITargetPluginOptionsFactory.cs @@ -1,28 +1,9 @@ using PKISharp.WACS.Plugins.Base.Options; -using PKISharp.WACS.Services; -using System.Threading.Tasks; namespace PKISharp.WACS.Plugins.Interfaces { /// <summary> /// TargetPluginFactory interface /// </summary> - public interface ITargetPluginOptionsFactory : IPluginOptionsFactory - { - /// <summary> - /// Hide when it cannot be chosen - /// </summary> - bool Hidden { get; } - /// <summary> - /// Check or get information needed for target (interactive) - /// </summary> - /// <param name="target"></param> - Task<TargetPluginOptions?> Aquire(IInputService inputService, RunLevel runLevel); - - /// <summary> - /// Check information needed for target (unattended) - /// </summary> - /// <param name="target"></param> - Task<TargetPluginOptions?> Default(); - } + public interface ITargetPluginOptionsFactory : IPluginOptionsFactory<TargetPluginOptions> { } } |