diff options
Diffstat (limited to 'MediaBrowser.Controller')
| -rw-r--r-- | MediaBrowser.Controller/Kernel.cs | 31 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Library/LibraryManager.cs | 52 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Library/UserManager.cs | 4 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Updates/InstallationManager.cs | 10 |
4 files changed, 57 insertions, 40 deletions
diff --git a/MediaBrowser.Controller/Kernel.cs b/MediaBrowser.Controller/Kernel.cs index d879b888b..ed49d26d8 100644 --- a/MediaBrowser.Controller/Kernel.cs +++ b/MediaBrowser.Controller/Kernel.cs @@ -12,7 +12,6 @@ using MediaBrowser.Controller.Playback; using MediaBrowser.Controller.Plugins; using MediaBrowser.Controller.Providers; using MediaBrowser.Controller.Resolvers; -using MediaBrowser.Controller.ScheduledTasks; using MediaBrowser.Controller.Updates; using MediaBrowser.Controller.Weather; using MediaBrowser.Model.Configuration; @@ -293,8 +292,6 @@ namespace MediaBrowser.Controller get { return 7359; } } - private readonly ITaskManager _taskManager; - /// <summary> /// Creates a kernel based on a Data path, which is akin to our current programdata path /// </summary> @@ -304,13 +301,11 @@ namespace MediaBrowser.Controller /// <param name="taskManager">The task manager.</param> /// <param name="logger">The logger.</param> /// <exception cref="System.ArgumentNullException">isoManager</exception> - public Kernel(IApplicationHost appHost, IServerApplicationPaths appPaths, IXmlSerializer xmlSerializer, ITaskManager taskManager, ILogger logger) + public Kernel(IApplicationHost appHost, IServerApplicationPaths appPaths, IXmlSerializer xmlSerializer, ILogger logger) : base(appHost, appPaths, xmlSerializer, logger) { Instance = this; - _taskManager = taskManager; - // For now there's no real way to inject this properly BaseItem.Logger = logger; Ratings.Logger = logger; @@ -469,7 +464,7 @@ namespace MediaBrowser.Controller { DisposeFileSystemManager(); - FileSystemManager = new FileSystemManager(this, Logger, _taskManager); + FileSystemManager = new FileSystemManager(this, Logger, ApplicationHost.Resolve<ITaskManager>()); FileSystemManager.StartWatchers(); } @@ -540,18 +535,6 @@ namespace MediaBrowser.Controller var reloadLogger = config.ShowLogWindow != oldConfiguration.ShowLogWindow; - // Figure out whether or not we should refresh people after the update is finished - var refreshPeopleAfterUpdate = !oldConfiguration.EnableInternetProviders && config.EnableInternetProviders; - - // This is true if internet providers has just been turned on, or if People have just been removed from InternetProviderExcludeTypes - if (!refreshPeopleAfterUpdate) - { - var oldConfigurationFetchesPeopleImages = oldConfiguration.InternetProviderExcludeTypes == null || !oldConfiguration.InternetProviderExcludeTypes.Contains(typeof(Person).Name, StringComparer.OrdinalIgnoreCase); - var newConfigurationFetchesPeopleImages = config.InternetProviderExcludeTypes == null || !config.InternetProviderExcludeTypes.Contains(typeof(Person).Name, StringComparer.OrdinalIgnoreCase); - - refreshPeopleAfterUpdate = newConfigurationFetchesPeopleImages && !oldConfigurationFetchesPeopleImages; - } - Configuration = config; SaveConfiguration(); @@ -560,20 +543,10 @@ namespace MediaBrowser.Controller ReloadLogger(); } - TcpManager.OnApplicationConfigurationChanged(oldConfiguration, config); - // Validate currently executing providers, in the background Task.Run(() => { ProviderManager.ValidateCurrentlyRunningProviders(); - - // Any number of configuration settings could change the way the library is refreshed, so do that now - _taskManager.CancelIfRunningAndQueue<RefreshMediaLibraryTask>(); - - if (refreshPeopleAfterUpdate) - { - _taskManager.CancelIfRunningAndQueue<PeopleValidationTask>(); - } }); } diff --git a/MediaBrowser.Controller/Library/LibraryManager.cs b/MediaBrowser.Controller/Library/LibraryManager.cs index c0c1fe1d6..53f4af4b2 100644 --- a/MediaBrowser.Controller/Library/LibraryManager.cs +++ b/MediaBrowser.Controller/Library/LibraryManager.cs @@ -1,8 +1,10 @@ using MediaBrowser.Common.Events; using MediaBrowser.Common.Extensions; +using MediaBrowser.Common.ScheduledTasks; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.IO; using MediaBrowser.Controller.Resolvers; +using MediaBrowser.Controller.ScheduledTasks; using MediaBrowser.Model.Entities; using MediaBrowser.Model.Logging; using MoreLinq; @@ -20,7 +22,7 @@ namespace MediaBrowser.Controller.Library /// <summary> /// Class LibraryManager /// </summary> - public class LibraryManager : BaseManager<Kernel> + public class LibraryManager { #region LibraryChanged Event /// <summary> @@ -48,7 +50,7 @@ namespace MediaBrowser.Controller.Library private void SendLibraryChangedWebSocketMessage(ChildrenChangedEventArgs args) { // Notify connected ui's - Kernel.TcpManager.SendWebSocketMessage("LibraryChanged", () => DtoBuilder.GetLibraryUpdateInfo(args)); + Kernel.ServerManager.SendWebSocketMessage("LibraryChanged", () => DtoBuilder.GetLibraryUpdateInfo(args)); } #endregion @@ -58,14 +60,56 @@ namespace MediaBrowser.Controller.Library private readonly ILogger _logger; /// <summary> + /// The _task manager + /// </summary> + private readonly ITaskManager _taskManager; + + /// <summary> + /// Gets or sets the kernel. + /// </summary> + /// <value>The kernel.</value> + private Kernel Kernel { get; set; } + + /// <summary> /// Initializes a new instance of the <see cref="LibraryManager" /> class. /// </summary> /// <param name="kernel">The kernel.</param> /// <param name="logger">The logger.</param> - public LibraryManager(Kernel kernel, ILogger logger) - : base(kernel) + /// <param name="taskManager">The task manager.</param> + public LibraryManager(Kernel kernel, ILogger logger, ITaskManager taskManager) { + Kernel = kernel; _logger = logger; + _taskManager = taskManager; + + kernel.ConfigurationUpdated += kernel_ConfigurationUpdated; + } + + /// <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) + { + //// Figure out whether or not we should refresh people after the update is finished + //var refreshPeopleAfterUpdate = !oldConfiguration.EnableInternetProviders && config.EnableInternetProviders; + + //// This is true if internet providers has just been turned on, or if People have just been removed from InternetProviderExcludeTypes + //if (!refreshPeopleAfterUpdate) + //{ + // var oldConfigurationFetchesPeopleImages = oldConfiguration.InternetProviderExcludeTypes == null || !oldConfiguration.InternetProviderExcludeTypes.Contains(typeof(Person).Name, StringComparer.OrdinalIgnoreCase); + // var newConfigurationFetchesPeopleImages = config.InternetProviderExcludeTypes == null || !config.InternetProviderExcludeTypes.Contains(typeof(Person).Name, StringComparer.OrdinalIgnoreCase); + + // refreshPeopleAfterUpdate = newConfigurationFetchesPeopleImages && !oldConfigurationFetchesPeopleImages; + //} + + Task.Run(() => + { + // Any number of configuration settings could change the way the library is refreshed, so do that now + _taskManager.CancelIfRunningAndQueue<RefreshMediaLibraryTask>(); + _taskManager.CancelIfRunningAndQueue<PeopleValidationTask>(); + }); } /// <summary> diff --git a/MediaBrowser.Controller/Library/UserManager.cs b/MediaBrowser.Controller/Library/UserManager.cs index 8084366b7..5340e70be 100644 --- a/MediaBrowser.Controller/Library/UserManager.cs +++ b/MediaBrowser.Controller/Library/UserManager.cs @@ -73,7 +73,7 @@ namespace MediaBrowser.Controller.Library EventHelper.QueueEventIfNotNull(UserUpdated, this, new GenericEventArgs<User> { Argument = user }, _logger); // Notify connected ui's - Kernel.TcpManager.SendWebSocketMessage("UserUpdated", new DtoBuilder(_logger).GetDtoUser(user)); + Kernel.ServerManager.SendWebSocketMessage("UserUpdated", new DtoBuilder(_logger).GetDtoUser(user)); } #endregion @@ -91,7 +91,7 @@ namespace MediaBrowser.Controller.Library EventHelper.QueueEventIfNotNull(UserDeleted, this, new GenericEventArgs<User> { Argument = user }, _logger); // Notify connected ui's - Kernel.TcpManager.SendWebSocketMessage("UserDeleted", user.Id.ToString()); + Kernel.ServerManager.SendWebSocketMessage("UserDeleted", user.Id.ToString()); } #endregion diff --git a/MediaBrowser.Controller/Updates/InstallationManager.cs b/MediaBrowser.Controller/Updates/InstallationManager.cs index 8751bd427..efef87f86 100644 --- a/MediaBrowser.Controller/Updates/InstallationManager.cs +++ b/MediaBrowser.Controller/Updates/InstallationManager.cs @@ -49,7 +49,7 @@ namespace MediaBrowser.Controller.Updates EventHelper.QueueEventIfNotNull(PluginUninstalled, this, new GenericEventArgs<IPlugin> { Argument = plugin }, _logger); // Notify connected ui's - Kernel.TcpManager.SendWebSocketMessage("PluginUninstalled", plugin.GetPluginInfo()); + Kernel.ServerManager.SendWebSocketMessage("PluginUninstalled", plugin.GetPluginInfo()); } #endregion @@ -371,7 +371,7 @@ namespace MediaBrowser.Controller.Updates var linkedToken = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken, innerCancellationTokenSource.Token).Token; - Kernel.TcpManager.SendWebSocketMessage("PackageInstalling", installationInfo); + Kernel.ServerManager.SendWebSocketMessage("PackageInstalling", installationInfo); try { @@ -384,7 +384,7 @@ namespace MediaBrowser.Controller.Updates CompletedInstallations.Add(installationInfo); - Kernel.TcpManager.SendWebSocketMessage("PackageInstallationCompleted", installationInfo); + Kernel.ServerManager.SendWebSocketMessage("PackageInstallationCompleted", installationInfo); } catch (OperationCanceledException) { @@ -395,7 +395,7 @@ namespace MediaBrowser.Controller.Updates _logger.Info("Package installation cancelled: {0} {1}", package.name, package.versionStr); - Kernel.TcpManager.SendWebSocketMessage("PackageInstallationCancelled", installationInfo); + Kernel.ServerManager.SendWebSocketMessage("PackageInstallationCancelled", installationInfo); throw; } @@ -406,7 +406,7 @@ namespace MediaBrowser.Controller.Updates CurrentInstallations.Remove(tuple); } - Kernel.TcpManager.SendWebSocketMessage("PackageInstallationFailed", installationInfo); + Kernel.ServerManager.SendWebSocketMessage("PackageInstallationFailed", installationInfo); throw; } |
