From fb88e4d5fcd02ada0999a09b68a49617f4a35309 Mon Sep 17 00:00:00 2001 From: LukePulverenti Luke Pulverenti luke pulverenti Date: Mon, 17 Sep 2012 14:09:35 -0400 Subject: Added the ability to reload the server and created a Plugins solution --- MediaBrowser.Common/UI/BaseApplication.cs | 43 +++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) (limited to 'MediaBrowser.Common/UI') diff --git a/MediaBrowser.Common/UI/BaseApplication.cs b/MediaBrowser.Common/UI/BaseApplication.cs index 12e423f60c..e22eed1583 100644 --- a/MediaBrowser.Common/UI/BaseApplication.cs +++ b/MediaBrowser.Common/UI/BaseApplication.cs @@ -5,6 +5,7 @@ using Microsoft.Shell; using System; using System.Collections.Generic; using System.ComponentModel; +using System.Threading.Tasks; using System.Windows; namespace MediaBrowser.Common.UI @@ -42,6 +43,9 @@ namespace MediaBrowser.Common.UI Kernel = InstantiateKernel(); var progress = new Progress(); + + progress.ProgressChanged += progress_ProgressChanged; + var splash = new Splash(progress); splash.Show(); @@ -52,6 +56,8 @@ namespace MediaBrowser.Common.UI await Kernel.Init(progress); + progress.ProgressChanged -= progress_ProgressChanged; + Logger.LogInfo("Kernel.Init completed in {0} seconds.", (DateTime.UtcNow - now).TotalSeconds); splash.Close(); @@ -63,6 +69,8 @@ namespace MediaBrowser.Common.UI } catch (Exception ex) { + progress.ProgressChanged -= progress_ProgressChanged; + if (Logger.LoggerInstance != null) { Logger.LogException(ex); @@ -76,6 +84,41 @@ namespace MediaBrowser.Common.UI } } + public async Task ReloadKernel() + { + var progress = new Progress(); + + progress.ProgressChanged += progress_ProgressChanged; + + try + { + DateTime now = DateTime.UtcNow; + + await Kernel.Reload(progress); + + progress.ProgressChanged -= progress_ProgressChanged; + + Logger.LogInfo("Kernel.Reload completed in {0} seconds.", (DateTime.UtcNow - now).TotalSeconds); + } + catch (Exception ex) + { + progress.ProgressChanged -= progress_ProgressChanged; + + Logger.LogException(ex); + + // Shutdown the app with an error code + Shutdown(1); + } + } + + void progress_ProgressChanged(object sender, TaskProgress e) + { + if (Logger.LoggerInstance != null) + { + Logger.LogInfo(e.Description); + } + } + protected virtual void OnKernelLoaded() { -- cgit v1.2.3