public RunAsServiceCommand( [NotNull] ILogger logger, [NotNull] IWindowsServiceConfiguration configuration, [NotNull] IBackgroundServicesManager backgroundServicesManager, [NotNull] IApplicationLifetimeManager applicationLifetimeManager) { _Logger = logger ?? throw new ArgumentNullException(nameof(logger)); _Configuration = configuration ?? throw new ArgumentNullException(nameof(configuration)); _BackgroundServicesManager = backgroundServicesManager ?? throw new ArgumentNullException(nameof(backgroundServicesManager)); _ApplicationLifetimeManager = applicationLifetimeManager ?? throw new ArgumentNullException(nameof(applicationLifetimeManager)); }
public TrayApp( [NotNull] IBackgroundServicesManager backgroundServicesManager, [NotNull] IApplicationLifetimeManager applicationLifetimeManager, [NotNull] ILogger logger) { _BackgroundServicesManager = backgroundServicesManager ?? throw new ArgumentNullException(nameof(backgroundServicesManager)); _ApplicationLifetimeManager = applicationLifetimeManager ?? throw new ArgumentNullException(nameof(applicationLifetimeManager)); _Logger = logger ?? throw new ArgumentNullException(nameof(logger)); }
public WindowsService( [NotNull] IWindowsServiceConfiguration configuration, [NotNull] IApplicationLifetimeManager applicationLifetimeManager, [NotNull] IBackgroundServicesManager backgroundServicesManager, [NotNull] ILogger logger) { if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } _BackgroundServicesManager = backgroundServicesManager ?? throw new ArgumentNullException(nameof(backgroundServicesManager)); _Logger = logger ?? throw new ArgumentNullException(nameof(logger)); _ApplicationLifetimeManager = applicationLifetimeManager ?? throw new ArgumentNullException(nameof(applicationLifetimeManager)); ServiceName = configuration.ServiceName; CanStop = true; }
public ConsoleApplicationEntryPoint( [NotNull] IApplicationEntryPoint applicationEntryPoint, [NotNull] ILogger logger, [NotNull] IBackgroundServicesManager backgroundServicesManager, [NotNull] IApplicationLifetimeManager applicationLifetimeManager, [NotNull] IConfiguration configuration, [NotNull] IConsoleApplicationHelpTextPresenter consoleApplicationHelpTextPresenter, [NotNull] IBus bus) : base(logger, bus, applicationLifetimeManager) { _ApplicationEntryPoint = applicationEntryPoint ?? throw new ArgumentNullException(nameof(applicationEntryPoint)); _ApplicationLifetimeManager = applicationLifetimeManager ?? throw new ArgumentNullException(nameof(applicationLifetimeManager)); _Configuration = configuration ?? throw new ArgumentNullException(nameof(configuration)); _ConsoleApplicationHelpTextPresenter = consoleApplicationHelpTextPresenter ?? throw new ArgumentNullException(nameof(consoleApplicationHelpTextPresenter)); _BackgroundServicesManager = backgroundServicesManager ?? throw new ArgumentNullException(nameof(backgroundServicesManager)); }
public WpfApplicationLifetimeManager([NotNull] IBackgroundServicesManager backgroundServicesManager) { _BackgroundServicesManager = backgroundServicesManager ?? throw new ArgumentNullException(nameof(backgroundServicesManager)); }
public static void RunWinFormsMainWindow <T>(bool useBackgroundServices) where T : class, IServicesBootstrapper { var container = ContainerFactory.Bootstrap <ServicesBootstrapper <T> >(); IBackgroundServicesManager backgroundServicesManager = container.Resolve <IBackgroundServicesManager>().NotNull(); IApplicationLifetimeManager applicationLifetimeManager = container.Resolve <IApplicationLifetimeManager>(); if (useBackgroundServices) { backgroundServicesManager.StartBackgroundServices(); } try { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Form mainForm = container.Resolve <Form>(serviceKey: "MainForm"); bool closingHasBeenHandled = true; applicationLifetimeManager.GracefulTerminationCancellationToken.Register( () => { if (closingHasBeenHandled) { return; } closingHasBeenHandled = true; var close = new Action(() => mainForm.Close()); if (mainForm.InvokeRequired) { mainForm.BeginInvoke(close); } else { close(); } }); mainForm.FormClosed += (s, e) => { closingHasBeenHandled = true; applicationLifetimeManager.SignalGracefulTermination(); }; Application.Run(mainForm); } catch (Exception) when(!Debugger.IsAttached) { Environment.ExitCode = 1; throw; } finally { if (useBackgroundServices) { backgroundServicesManager.WaitForBackgroundServicesToStop().GetAwaiter().GetResult(); } } }