diff options
Diffstat (limited to 'MediaBrowser.ServerApplication')
| -rw-r--r-- | MediaBrowser.ServerApplication/App.xaml.cs | 81 | ||||
| -rw-r--r-- | MediaBrowser.ServerApplication/ApplicationHost.cs | 127 | ||||
| -rw-r--r-- | MediaBrowser.ServerApplication/LibraryExplorer.xaml.cs | 12 | ||||
| -rw-r--r-- | MediaBrowser.ServerApplication/Logging/LogWindow.xaml.cs | 12 | ||||
| -rw-r--r-- | MediaBrowser.ServerApplication/MainWindow.xaml.cs | 52 | ||||
| -rw-r--r-- | MediaBrowser.ServerApplication/StartupWizard.cs | 10 |
6 files changed, 108 insertions, 186 deletions
diff --git a/MediaBrowser.ServerApplication/App.xaml.cs b/MediaBrowser.ServerApplication/App.xaml.cs index d79b2ff43..470b7fc55 100644 --- a/MediaBrowser.ServerApplication/App.xaml.cs +++ b/MediaBrowser.ServerApplication/App.xaml.cs @@ -1,4 +1,5 @@ using System.IO; +using MediaBrowser.Common.Configuration; using MediaBrowser.Common.Constants; using MediaBrowser.Common.Kernel; using MediaBrowser.Common.Updates; @@ -72,12 +73,6 @@ namespace MediaBrowser.ServerApplication private Mutex SingleInstanceMutex; /// <summary> - /// Gets or sets the kernel. - /// </summary> - /// <value>The kernel.</value> - protected IKernel Kernel { get; set; } - - /// <summary> /// Gets or sets the logger. /// </summary> /// <value>The logger.</value> @@ -108,12 +103,6 @@ namespace MediaBrowser.ServerApplication } /// <summary> - /// Gets or sets a value indicating whether [last run at startup value]. - /// </summary> - /// <value><c>null</c> if [last run at startup value] contains no value, <c>true</c> if [last run at startup value]; otherwise, <c>false</c>.</value> - private bool? LastRunAtStartupValue { get; set; } - - /// <summary> /// Raises the <see cref="E:System.Windows.Application.Startup" /> event. /// </summary> /// <param name="e">A <see cref="T:System.Windows.StartupEventArgs" /> that contains the event data.</param> @@ -164,26 +153,17 @@ namespace MediaBrowser.ServerApplication /// </summary> protected async void LoadKernel() { - CompositionRoot = new ApplicationHost(); - await CompositionRoot.Init(); - - Logger = CompositionRoot.Logger; - Kernel = CompositionRoot.Kernel; - try { - var win = (MainWindow)CompositionRoot.CreateInstance(typeof(MainWindow)); - - win.Show(); + CompositionRoot = new ApplicationHost(); - var now = DateTime.UtcNow; + var win = new MainWindow(CompositionRoot.LogManager, CompositionRoot, CompositionRoot.ServerConfigurationManager); - Kernel.Init(); + Logger = CompositionRoot.LogManager.GetLogger("App"); - var done = (DateTime.UtcNow - now); - Logger.Info("Kernel.Init completed in {0}{1} minutes and {2} seconds.", done.Hours > 0 ? done.Hours + " Hours " : "", done.Minutes, done.Seconds); + win.Show(); - await OnKernelLoaded(); + await CompositionRoot.Init(); } catch (Exception ex) { @@ -197,41 +177,6 @@ namespace MediaBrowser.ServerApplication } /// <summary> - /// Called when [kernel loaded]. - /// </summary> - /// <returns>Task.</returns> - protected Task OnKernelLoaded() - { - return Task.Run(() => - { - Kernel.ConfigurationUpdated += Kernel_ConfigurationUpdated; - - ConfigureAutoRun(); - }); - } - - /// <summary> - /// Handles the ConfigurationUpdated event of the Kernel control. - /// </summary> - /// <param name="sender">The source of the event.</param> - /// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param> - void Kernel_ConfigurationUpdated(object sender, EventArgs e) - { - if (!LastRunAtStartupValue.HasValue || LastRunAtStartupValue.Value != Kernel.Configuration.RunAtStartup) - { - ConfigureAutoRun(); - } - } - - /// <summary> - /// Configures the click once startup. - /// </summary> - private void ConfigureAutoRun() - { - CompositionRoot.ConfigureAutoRunAtStartup(Kernel.Configuration.RunAtStartup); - } - - /// <summary> /// Raises the <see cref="E:System.Windows.Application.Exit" /> event. /// </summary> /// <param name="e">An <see cref="T:System.Windows.ExitEventArgs" /> that contains the event data.</param> @@ -261,21 +206,13 @@ namespace MediaBrowser.ServerApplication } /// <summary> - /// Opens the dashboard. - /// </summary> - public static void OpenDashboard(User loggedInUser) - { - OpenDashboardPage("dashboard.html", loggedInUser); - } - - /// <summary> /// Opens the dashboard page. /// </summary> /// <param name="page">The page.</param> - public static void OpenDashboardPage(string page, User loggedInUser) + public static void OpenDashboardPage(string page, User loggedInUser, IConfigurationManager configurationManager) { - var url = "http://localhost:" + Controller.Kernel.Instance.Configuration.HttpServerPortNumber + "/" + - Controller.Kernel.Instance.WebApplicationName + "/dashboard/" + page; + var url = "http://localhost:" + configurationManager.CommonConfiguration.HttpServerPortNumber + "/" + + Kernel.Instance.WebApplicationName + "/dashboard/" + page; if (loggedInUser != null) { diff --git a/MediaBrowser.ServerApplication/ApplicationHost.cs b/MediaBrowser.ServerApplication/ApplicationHost.cs index fa9ba2b8f..c36e0fa7f 100644 --- a/MediaBrowser.ServerApplication/ApplicationHost.cs +++ b/MediaBrowser.ServerApplication/ApplicationHost.cs @@ -1,18 +1,16 @@ using MediaBrowser.Api; +using MediaBrowser.Common; +using MediaBrowser.Common.Configuration; using MediaBrowser.Common.Constants; using MediaBrowser.Common.Implementations; using MediaBrowser.Common.Implementations.HttpServer; using MediaBrowser.Common.Implementations.Logging; -using MediaBrowser.Common.Implementations.NetworkManagement; using MediaBrowser.Common.Implementations.ScheduledTasks; -using MediaBrowser.Common.Implementations.Serialization; -using MediaBrowser.Common.Implementations.ServerManager; using MediaBrowser.Common.IO; using MediaBrowser.Common.Kernel; -using MediaBrowser.Common.Net; -using MediaBrowser.Common.ScheduledTasks; using MediaBrowser.Common.Updates; using MediaBrowser.Controller; +using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Resolvers; @@ -21,13 +19,12 @@ using MediaBrowser.IsoMounter; using MediaBrowser.Model.IO; using MediaBrowser.Model.Logging; using MediaBrowser.Model.MediaInfo; -using MediaBrowser.Model.Serialization; using MediaBrowser.Model.System; using MediaBrowser.Model.Updates; using MediaBrowser.Server.Implementations; using MediaBrowser.Server.Implementations.BdInfo; +using MediaBrowser.Server.Implementations.Configuration; using MediaBrowser.Server.Implementations.Library; -using MediaBrowser.Server.Implementations.Library.Resolvers; using MediaBrowser.ServerApplication.Implementations; using MediaBrowser.WebDashboard.Api; using System; @@ -43,112 +40,80 @@ namespace MediaBrowser.ServerApplication /// <summary> /// Class CompositionRoot /// </summary> - public class ApplicationHost : BaseApplicationHost, IApplicationHost + public class ApplicationHost : BaseApplicationHost<ServerApplicationPaths> { /// <summary> - /// Gets or sets the kernel. + /// The _web socket events /// </summary> - /// <value>The kernel.</value> - internal Kernel Kernel { get; private set; } - - /// <summary> - /// The json serializer - /// </summary> - private readonly IJsonSerializer _jsonSerializer = new JsonSerializer(); - - /// <summary> - /// The _XML serializer - /// </summary> - private readonly IXmlSerializer _xmlSerializer = new XmlSerializer(); - private WebSocketEvents _webSocketEvents; /// <summary> - /// Gets the server application paths. + /// Gets the server kernel. /// </summary> - /// <value>The server application paths.</value> - protected IServerApplicationPaths ServerApplicationPaths + /// <value>The server kernel.</value> + protected Kernel ServerKernel { - get { return (IServerApplicationPaths)ApplicationPaths; } + get { return (Kernel)Kernel; } } /// <summary> - /// Initializes a new instance of the <see cref="ApplicationHost" /> class. + /// Gets the server configuration manager. /// </summary> - /// <param name="logger">The logger.</param> - public ApplicationHost() - : base() + /// <value>The server configuration manager.</value> + public IServerConfigurationManager ServerConfigurationManager { + get { return (IServerConfigurationManager)ConfigurationManager; } } /// <summary> - /// Inits this instance. + /// Gets the kernel. /// </summary> - /// <returns>Task.</returns> - public override async Task Init() + /// <returns>IKernel.</returns> + protected override IKernel GetKernel() { - await base.Init().ConfigureAwait(false); - - Kernel = new Kernel(this, ServerApplicationPaths, _xmlSerializer, Logger); - - var networkManager = new NetworkManager(); - - var serverManager = new ServerManager(this, Kernel, networkManager, _jsonSerializer, Logger); - - var taskManager = new TaskManager(ApplicationPaths, _jsonSerializer, Logger, serverManager); - - LogManager.ReloadLogger(Kernel.Configuration.EnableDebugLevelLogging ? LogSeverity.Debug : LogSeverity.Info); - - Logger.Info("Version {0} initializing", ApplicationVersion); - - RegisterResources(taskManager, networkManager, serverManager); - - FindParts(); + return new Kernel(this, XmlSerializer, LogManager, ServerConfigurationManager); } /// <summary> - /// Gets the application paths. + /// Gets the name of the log file prefix. /// </summary> - /// <returns>IApplicationPaths.</returns> - protected override IApplicationPaths GetApplicationPaths() + /// <value>The name of the log file prefix.</value> + protected override string LogFilePrefixName { - return new ServerApplicationPaths(); + get { return "Server"; } } /// <summary> - /// Gets the log manager. + /// Gets the configuration manager. /// </summary> - /// <returns>ILogManager.</returns> - protected override ILogManager GetLogManager() + /// <returns>IConfigurationManager.</returns> + protected override IConfigurationManager GetConfigurationManager() { - return new NlogManager(ApplicationPaths.LogDirectoryPath, "Server"); + return new ServerConfigurationManager(ApplicationPaths, LogManager, XmlSerializer); } /// <summary> /// Registers resources that classes will depend on /// </summary> - protected override void RegisterResources(ITaskManager taskManager, INetworkManager networkManager, IServerManager serverManager) + protected override void RegisterResources() { - base.RegisterResources(taskManager, networkManager, serverManager); - - RegisterSingleInstance<IKernel>(Kernel); - RegisterSingleInstance(Kernel); + base.RegisterResources(); - RegisterSingleInstance<IApplicationHost>(this); + RegisterSingleInstance<IServerApplicationPaths>(ApplicationPaths); + + RegisterSingleInstance(ServerKernel); + RegisterSingleInstance(ServerConfigurationManager); - - RegisterSingleInstance(ServerApplicationPaths); RegisterSingleInstance<IIsoManager>(new PismoIsoManager(Logger)); RegisterSingleInstance<IBlurayExaminer>(new BdInfoExaminer()); RegisterSingleInstance<IZipClient>(new DotNetZipClient()); - RegisterSingleInstance(_jsonSerializer); - RegisterSingleInstance(_xmlSerializer); RegisterSingleInstance(ServerFactory.CreateServer(this, ProtobufSerializer, Logger, "Media Browser", "index.html"), false); - var userManager = new UserManager(Kernel, Logger); + var userManager = new UserManager(ServerKernel, Logger, ServerConfigurationManager); + RegisterSingleInstance<IUserManager>(userManager); - RegisterSingleInstance<ILibraryManager>(new LibraryManager(Kernel, Logger, taskManager, userManager)); + RegisterSingleInstance<ILibraryManager>(new LibraryManager(ServerKernel, Logger, TaskManager, userManager, ServerConfigurationManager)); } /// <summary> @@ -160,15 +125,15 @@ namespace MediaBrowser.ServerApplication Resolve<ILibraryManager>().AddParts(GetExports<IResolverIgnoreRule>(), GetExports<IVirtualFolderCreator>(), GetExports<IItemResolver>(), GetExports<IIntroProvider>()); - Kernel.InstallationManager = (InstallationManager)CreateInstance(typeof(InstallationManager)); + ServerKernel.InstallationManager = (InstallationManager)CreateInstance(typeof(InstallationManager)); - _webSocketEvents = new WebSocketEvents(Resolve<IServerManager>(), Resolve<IKernel>(), Resolve<ILogger>(), Resolve<IUserManager>(), Resolve<ILibraryManager>(), Kernel.InstallationManager); + _webSocketEvents = new WebSocketEvents(Resolve<IServerManager>(), Resolve<IKernel>(), Resolve<ILogger>(), Resolve<IUserManager>(), Resolve<ILibraryManager>(), ServerKernel.InstallationManager); } /// <summary> /// Restarts this instance. /// </summary> - public void Restart() + public override void Restart() { App.Instance.Restart(); } @@ -177,9 +142,9 @@ namespace MediaBrowser.ServerApplication /// Gets or sets a value indicating whether this instance can self update. /// </summary> /// <value><c>true</c> if this instance can self update; otherwise, <c>false</c>.</value> - public bool CanSelfUpdate + public override bool CanSelfUpdate { - get { return Kernel.Configuration.EnableAutoUpdate; } + get { return ConfigurationManager.CommonConfiguration.EnableAutoUpdate; } } /// <summary> @@ -188,11 +153,11 @@ namespace MediaBrowser.ServerApplication /// <param name="cancellationToken">The cancellation token.</param> /// <param name="progress">The progress.</param> /// <returns>Task{CheckForUpdateResult}.</returns> - public async Task<CheckForUpdateResult> CheckForApplicationUpdate(CancellationToken cancellationToken, IProgress<double> progress) + public async override Task<CheckForUpdateResult> CheckForApplicationUpdate(CancellationToken cancellationToken, IProgress<double> progress) { var pkgManager = Resolve<IPackageManager>(); - var availablePackages = await pkgManager.GetAvailablePackages(Resolve<IHttpClient>(), Resolve<INetworkManager>(), Kernel.SecurityManager, Kernel.ResourcePools, Resolve<IJsonSerializer>(), CancellationToken.None).ConfigureAwait(false); - var version = Kernel.InstallationManager.GetLatestCompatibleVersion(availablePackages, Constants.MBServerPkgName, Kernel.Configuration.SystemUpdateLevel); + var availablePackages = await pkgManager.GetAvailablePackages(CancellationToken.None).ConfigureAwait(false); + var version = ServerKernel.InstallationManager.GetLatestCompatibleVersion(availablePackages, Constants.MBServerPkgName, ConfigurationManager.CommonConfiguration.SystemUpdateLevel); return version != null ? new CheckForUpdateResult { AvailableVersion = version.version, IsUpdateAvailable = version.version > ApplicationVersion, Package = version } : new CheckForUpdateResult { AvailableVersion = ApplicationVersion, IsUpdateAvailable = false }; @@ -205,10 +170,10 @@ namespace MediaBrowser.ServerApplication /// <param name="cancellationToken">The cancellation token.</param> /// <param name="progress">The progress.</param> /// <returns>Task.</returns> - public Task UpdateApplication(PackageVersionInfo package, CancellationToken cancellationToken, IProgress<double> progress) + public override Task UpdateApplication(PackageVersionInfo package, CancellationToken cancellationToken, IProgress<double> progress) { var pkgManager = Resolve<IPackageManager>(); - return pkgManager.InstallPackage(Resolve<IHttpClient>(), Resolve<ILogger>(), Kernel.ResourcePools, progress, Kernel.ApplicationPaths, package, cancellationToken); + return pkgManager.InstallPackage(progress, package, cancellationToken); } /// <summary> @@ -254,7 +219,7 @@ namespace MediaBrowser.ServerApplication /// <summary> /// Shuts down. /// </summary> - public void Shutdown() + public override void Shutdown() { App.Instance.Dispatcher.Invoke(App.Instance.Shutdown); } diff --git a/MediaBrowser.ServerApplication/LibraryExplorer.xaml.cs b/MediaBrowser.ServerApplication/LibraryExplorer.xaml.cs index ef4b8f162..d567a9fd8 100644 --- a/MediaBrowser.ServerApplication/LibraryExplorer.xaml.cs +++ b/MediaBrowser.ServerApplication/LibraryExplorer.xaml.cs @@ -1,5 +1,4 @@ -using MediaBrowser.Common.Kernel; -using MediaBrowser.Controller; +using MediaBrowser.Common; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities.Movies; using MediaBrowser.Controller.Entities.TV; @@ -78,11 +77,10 @@ namespace MediaBrowser.ServerApplication //this whole async thing doesn't really work in this instance since all my work pretty much needs to be on the UI thread... Cursor = Cursors.Wait; await Task.Run(() => - { - IEnumerable<BaseItem> children; - children = CurrentUser.Name == "Physical" ? _libraryManager.RootFolder.Children.OrderBy(i => i.SortName) : _libraryManager.RootFolder.GetChildren(CurrentUser, sortBy: LocalizedStrings.Instance.GetString("NameDispPref")); + { + IEnumerable<BaseItem> children = CurrentUser.Name == "Physical" ? _libraryManager.RootFolder.Children.OrderBy(i => i.SortName) : _libraryManager.RootFolder.GetChildren(CurrentUser, sortBy: LocalizedStrings.Instance.GetString("NameDispPref")); - foreach (Folder folder in children) + foreach (Folder folder in children) { var currentFolder = folder; @@ -96,7 +94,7 @@ namespace MediaBrowser.ServerApplication tvwLibrary.Items.Add(node); }, CancellationToken.None, TaskCreationOptions.None, ui); } - }); + }); lblLoading.Visibility = Visibility.Hidden; Cursor = Cursors.Arrow; diff --git a/MediaBrowser.ServerApplication/Logging/LogWindow.xaml.cs b/MediaBrowser.ServerApplication/Logging/LogWindow.xaml.cs index fca978486..75ef69924 100644 --- a/MediaBrowser.ServerApplication/Logging/LogWindow.xaml.cs +++ b/MediaBrowser.ServerApplication/Logging/LogWindow.xaml.cs @@ -1,5 +1,4 @@ -using MediaBrowser.Common.Kernel; -using NLog; +using NLog; using NLog.Config; using NLog.Targets; using System.ComponentModel; @@ -18,20 +17,15 @@ namespace MediaBrowser.ServerApplication.Logging /// The _ui thread /// </summary> private readonly TaskScheduler _uiThread; - /// <summary> - /// The _kernel - /// </summary> - private readonly IKernel _kernel; /// <summary> /// Initializes a new instance of the <see cref="LogWindow" /> class. /// </summary> /// <param name="kernel">The kernel.</param> - public LogWindow(IKernel kernel) + public LogWindow() { InitializeComponent(); _uiThread = TaskScheduler.FromCurrentSynchronizationContext(); - _kernel = kernel; Loaded += LogWindow_Loaded; } @@ -94,7 +88,7 @@ namespace MediaBrowser.ServerApplication.Logging target.Name = name; config.AddTarget(name, target); - var level = _kernel.Configuration.EnableDebugLevelLogging ? LogLevel.Debug : LogLevel.Info; + var level = LogLevel.Debug; var rule = new LoggingRule("*", level, target); config.LoggingRules.Add(rule); diff --git a/MediaBrowser.ServerApplication/MainWindow.xaml.cs b/MediaBrowser.ServerApplication/MainWindow.xaml.cs index 0d0d2d54b..9043e007f 100644 --- a/MediaBrowser.ServerApplication/MainWindow.xaml.cs +++ b/MediaBrowser.ServerApplication/MainWindow.xaml.cs @@ -1,5 +1,7 @@ -using MediaBrowser.Common.Kernel; +using MediaBrowser.Common; using MediaBrowser.Controller; +using MediaBrowser.Controller.Configuration; +using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Library; using MediaBrowser.Model.Logging; using MediaBrowser.ServerApplication.Logging; @@ -31,6 +33,11 @@ namespace MediaBrowser.ServerApplication /// The _log manager /// </summary> private readonly ILogManager _logManager; + + /// <summary> + /// The _configuration manager + /// </summary> + private readonly IServerConfigurationManager _configurationManager; /// <summary> /// Initializes a new instance of the <see cref="MainWindow" /> class. @@ -39,16 +46,25 @@ namespace MediaBrowser.ServerApplication /// <param name="logger">The logger.</param> /// <param name="appHost">The app host.</param> /// <exception cref="System.ArgumentNullException">logger</exception> - public MainWindow(ILogManager logManager, IApplicationHost appHost) + public MainWindow(ILogManager logManager, IApplicationHost appHost, IServerConfigurationManager configurationManager) { if (logManager == null) { throw new ArgumentNullException("logManager"); } + if (appHost == null) + { + throw new ArgumentNullException("appHost"); + } + if (configurationManager == null) + { + throw new ArgumentNullException("configurationManager"); + } _logger = logManager.GetLogger("MainWindow"); _appHost = appHost; _logManager = logManager; + _configurationManager = configurationManager; InitializeComponent(); @@ -67,7 +83,7 @@ namespace MediaBrowser.ServerApplication Instance_ConfigurationUpdated(null, EventArgs.Empty); _logManager.LoggerLoaded += LoadLogWindow; - Kernel.Instance.ConfigurationUpdated += Instance_ConfigurationUpdated; + _configurationManager.ConfigurationUpdated += Instance_ConfigurationUpdated; } /// <summary> @@ -79,7 +95,7 @@ namespace MediaBrowser.ServerApplication { Dispatcher.InvokeAsync(() => { - var developerToolsVisibility = Kernel.Instance.Configuration.EnableDeveloperTools + var developerToolsVisibility = _configurationManager.Configuration.EnableDeveloperTools ? Visibility.Visible : Visibility.Collapsed; @@ -89,9 +105,9 @@ namespace MediaBrowser.ServerApplication var logWindow = App.Instance.Windows.OfType<LogWindow>().FirstOrDefault(); - if ((logWindow == null && Kernel.Instance.Configuration.ShowLogWindow) || (logWindow != null && !Kernel.Instance.Configuration.ShowLogWindow)) + if ((logWindow == null && _configurationManager.Configuration.ShowLogWindow) || (logWindow != null && !_configurationManager.Configuration.ShowLogWindow)) { - _logManager.ReloadLogger(Kernel.Instance.Configuration.EnableDebugLevelLogging ? LogSeverity.Debug : LogSeverity.Info); + _logManager.ReloadLogger(_configurationManager.Configuration.EnableDebugLevelLogging ? LogSeverity.Debug : LogSeverity.Info); } }); } @@ -107,16 +123,16 @@ namespace MediaBrowser.ServerApplication Dispatcher.InvokeAsync(() => { // Add our log window if specified - if (Kernel.Instance.Configuration.ShowLogWindow) + if (_configurationManager.Configuration.ShowLogWindow) { - Trace.Listeners.Add(new WindowTraceListener(new LogWindow(Kernel.Instance))); + Trace.Listeners.Add(new WindowTraceListener(new LogWindow())); } else { Trace.Listeners.Remove("MBLogWindow"); } // Set menu option indicator - cmShowLogWindow.IsChecked = Kernel.Instance.Configuration.ShowLogWindow; + cmShowLogWindow.IsChecked = _configurationManager.Configuration.ShowLogWindow; }, DispatcherPriority.Normal); } @@ -142,7 +158,7 @@ namespace MediaBrowser.ServerApplication /// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param> void cmdApiDocs_Click(object sender, EventArgs e) { - App.OpenUrl("http://localhost:" + Kernel.Instance.Configuration.HttpServerPortNumber + "/" + + App.OpenUrl("http://localhost:" + _configurationManager.Configuration.HttpServerPortNumber + "/" + Kernel.Instance.WebApplicationName + "/metadata"); } @@ -190,10 +206,18 @@ namespace MediaBrowser.ServerApplication private void cmOpenDashboard_click(object sender, RoutedEventArgs e) { var user = _appHost.Resolve<IUserManager>().Users.FirstOrDefault(u => u.Configuration.IsAdministrator); - App.OpenDashboard(user); + OpenDashboard(user); } /// <summary> + /// Opens the dashboard. + /// </summary> + private void OpenDashboard(User loggedInUser) + { + App.OpenDashboardPage("dashboard.html", loggedInUser, _configurationManager); + } + + /// <summary> /// Handles the click event of the cmVisitCT control. /// </summary> /// <param name="sender">The source of the event.</param> @@ -211,7 +235,7 @@ namespace MediaBrowser.ServerApplication private void cmdBrowseLibrary_click(object sender, RoutedEventArgs e) { var user = _appHost.Resolve<IUserManager>().Users.FirstOrDefault(u => u.Configuration.IsAdministrator); - App.OpenDashboardPage("index.html", user); + App.OpenDashboardPage("index.html", user, _configurationManager); } /// <summary> @@ -241,8 +265,8 @@ namespace MediaBrowser.ServerApplication /// <param name="e">The <see cref="RoutedEventArgs" /> instance containing the event data.</param> private void CmShowLogWindow_click(object sender, RoutedEventArgs e) { - Kernel.Instance.Configuration.ShowLogWindow = !Kernel.Instance.Configuration.ShowLogWindow; - Kernel.Instance.SaveConfiguration(); + _configurationManager.Configuration.ShowLogWindow = !_configurationManager.Configuration.ShowLogWindow; + _configurationManager.SaveConfiguration(); LoadLogWindow(sender, e); } diff --git a/MediaBrowser.ServerApplication/StartupWizard.cs b/MediaBrowser.ServerApplication/StartupWizard.cs index c5e8c1c99..57a90ea81 100644 --- a/MediaBrowser.ServerApplication/StartupWizard.cs +++ b/MediaBrowser.ServerApplication/StartupWizard.cs @@ -1,4 +1,5 @@ -using MediaBrowser.Common.Kernel; +using MediaBrowser.Common; +using MediaBrowser.Common.Configuration; using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Plugins; using System.Linq; @@ -19,15 +20,18 @@ namespace MediaBrowser.ServerApplication /// </summary> private readonly IUserManager _userManager; + private readonly IConfigurationManager _configurationManager; + /// <summary> /// Initializes a new instance of the <see cref="StartupWizard" /> class. /// </summary> /// <param name="appHost">The app host.</param> /// <param name="userManager">The user manager.</param> - public StartupWizard(IApplicationHost appHost, IUserManager userManager) + public StartupWizard(IApplicationHost appHost, IUserManager userManager, IConfigurationManager configurationManager) { _appHost = appHost; _userManager = userManager; + _configurationManager = configurationManager; } /// <summary> @@ -48,7 +52,7 @@ namespace MediaBrowser.ServerApplication { var user = _userManager.Users.FirstOrDefault(u => u.Configuration.IsAdministrator); - App.OpenDashboardPage("wizardStart.html", user); + App.OpenDashboardPage("wizardStart.html", user, _configurationManager); } /// <summary> |
