public Task StopAsync(CancellationToken cancellationToken)
 {
     UserActivityFileMonitor?.Dispose();
     ProcessScannerTimer?.Stop();
     GamesDataUpdateTimer?.Stop();
     return(WebHost.StopAsync());
 }
        public Task StartAsync(CancellationToken cancellationToken)
        {
            LogUsefulInformation();
            ProcessScannerTimer.Start();
            GamesDataUpdateTimer.Start();

            Task.Delay(1000).ContinueWith(x => GameStore.ReloadGamesFromCentralRepository());

            WebHost.StartAsync(cancellationToken).ContinueWith((func) => PrefetchUserProfile());
            Application.Run(new SystemTrayForm());
            return(Task.CompletedTask);
        }