diff --git a/src/ElectronNET.AspNet/Runtime/Services/AppReadyCallbackResolver.cs b/src/ElectronNET.AspNet/Runtime/Services/AppReadyCallbackResolver.cs new file mode 100644 index 0000000..b1e9544 --- /dev/null +++ b/src/ElectronNET.AspNet/Runtime/Services/AppReadyCallbackResolver.cs @@ -0,0 +1,37 @@ +using System; +using System.Threading.Tasks; + +namespace ElectronNET.AspNet.Runtime +{ + internal class AppReadyCallbackResolver : IAppReadyCallbackResolver + { + private readonly Func _callback; + + public AppReadyCallbackResolver() + { } + + public AppReadyCallbackResolver(Func callback) + { + _callback = callback; + } + + public AppReadyCallbackResolver(string[] args, Func callback) + { + _callback = () => callback.Invoke(args); + } + + public AppReadyCallbackResolver(IServiceProvider serviceProvider, Func callback) + { + _callback = () => callback.Invoke(serviceProvider); + } + + public AppReadyCallbackResolver(IServiceProvider serviceProvider, string[] args, Func callback) + { + _callback = () => callback.Invoke(serviceProvider, args); + } + + public bool HasCallback => _callback != null; + + public Task Invoke() => _callback?.Invoke() ?? Task.CompletedTask; + } +} diff --git a/src/ElectronNET.AspNet/Runtime/Services/IAppReadyCallbackResolver.cs b/src/ElectronNET.AspNet/Runtime/Services/IAppReadyCallbackResolver.cs new file mode 100644 index 0000000..7fc8494 --- /dev/null +++ b/src/ElectronNET.AspNet/Runtime/Services/IAppReadyCallbackResolver.cs @@ -0,0 +1,11 @@ +using System.Threading.Tasks; + +namespace ElectronNET.AspNet.Runtime +{ + internal interface IAppReadyCallbackResolver + { + public bool HasCallback { get; } + + public Task Invoke(); + } +}