diff options
| author | LukePulverenti <luke.pulverenti@gmail.com> | 2013-03-04 23:25:27 -0500 |
|---|---|---|
| committer | LukePulverenti <luke.pulverenti@gmail.com> | 2013-03-04 23:25:27 -0500 |
| commit | bf9e24502c26bc130960cebc6b1be16635070bc8 (patch) | |
| tree | 4e7f07ec99b476b179ee4ef85d19860f3a73ee85 /MediaBrowser.Api | |
| parent | 4c725e69a8bb96da1f69fc3d958c680b77712f81 (diff) | |
extracted an installation manager interface
Diffstat (limited to 'MediaBrowser.Api')
| -rw-r--r-- | MediaBrowser.Api/PackageService.cs | 32 | ||||
| -rw-r--r-- | MediaBrowser.Api/PluginService.cs | 8 |
2 files changed, 23 insertions, 17 deletions
diff --git a/MediaBrowser.Api/PackageService.cs b/MediaBrowser.Api/PackageService.cs index 75dffc67b..1c0508c6d 100644 --- a/MediaBrowser.Api/PackageService.cs +++ b/MediaBrowser.Api/PackageService.cs @@ -1,8 +1,7 @@ using MediaBrowser.Common; using MediaBrowser.Common.Extensions; using MediaBrowser.Common.Implementations.HttpServer; -using MediaBrowser.Common.Kernel; -using MediaBrowser.Controller; +using MediaBrowser.Controller.Updates; using MediaBrowser.Model.Updates; using ServiceStack.ServiceHost; using System; @@ -95,11 +94,14 @@ namespace MediaBrowser.Api /// </summary> public class PackageService : BaseRestService { - /// <summary> - /// Gets or sets the application host. - /// </summary> - /// <value>The application host.</value> - public IApplicationHost ApplicationHost { get; set; } + private readonly IInstallationManager _installationManager; + private readonly IApplicationHost _appHost; + + public PackageService(IInstallationManager installationManager, IApplicationHost appHost) + { + _installationManager = installationManager; + _appHost = appHost; + } /// <summary> /// Gets the specified request. @@ -113,12 +115,12 @@ namespace MediaBrowser.Api if (request.PackageType == PackageType.UserInstalled || request.PackageType == PackageType.All) { - result.AddRange(Kernel.Instance.InstallationManager.GetAvailablePluginUpdates(false, CancellationToken.None).Result.ToList()); + result.AddRange(_installationManager.GetAvailablePluginUpdates(false, CancellationToken.None).Result.ToList()); } else if (request.PackageType == PackageType.System || request.PackageType == PackageType.All) { - var updateCheckResult = ApplicationHost.CheckForApplicationUpdate(CancellationToken.None, new Progress<double> { }).Result; + var updateCheckResult = _appHost.CheckForApplicationUpdate(CancellationToken.None, new Progress<double> { }).Result; if (updateCheckResult.IsUpdateAvailable) { @@ -136,7 +138,7 @@ namespace MediaBrowser.Api /// <returns>System.Object.</returns> public object Get(GetPackage request) { - var packages = Kernel.Instance.InstallationManager.GetAvailablePackages(CancellationToken.None, applicationVersion: ApplicationHost.ApplicationVersion).Result; + var packages = _installationManager.GetAvailablePackages(CancellationToken.None, applicationVersion: _appHost.ApplicationVersion).Result; var result = packages.FirstOrDefault(p => p.name.Equals(request.Name, StringComparison.OrdinalIgnoreCase)); @@ -150,7 +152,7 @@ namespace MediaBrowser.Api /// <returns>System.Object.</returns> public object Get(GetPackages request) { - var packages = Kernel.Instance.InstallationManager.GetAvailablePackages(CancellationToken.None, request.PackageType, ApplicationHost.ApplicationVersion).Result; + var packages = _installationManager.GetAvailablePackages(CancellationToken.None, request.PackageType, _appHost.ApplicationVersion).Result; return ToOptimizedResult(packages.ToList()); } @@ -163,15 +165,15 @@ namespace MediaBrowser.Api public void Post(InstallPackage request) { var package = string.IsNullOrEmpty(request.Version) ? - Kernel.Instance.InstallationManager.GetLatestCompatibleVersion(request.Name, request.UpdateClass).Result : - Kernel.Instance.InstallationManager.GetPackage(request.Name, request.UpdateClass, Version.Parse(request.Version)).Result; + _installationManager.GetLatestCompatibleVersion(request.Name, request.UpdateClass).Result : + _installationManager.GetPackage(request.Name, request.UpdateClass, Version.Parse(request.Version)).Result; if (package == null) { throw new ResourceNotFoundException(string.Format("Package not found: {0}", request.Name)); } - Task.Run(() => Kernel.Instance.InstallationManager.InstallPackage(package, new Progress<double> { }, CancellationToken.None)); + Task.Run(() => _installationManager.InstallPackage(package, new Progress<double> { }, CancellationToken.None)); } /// <summary> @@ -180,7 +182,7 @@ namespace MediaBrowser.Api /// <param name="request">The request.</param> public void Delete(CancelPackageInstallation request) { - var info = Kernel.Instance.InstallationManager.CurrentInstallations.FirstOrDefault(i => i.Item1.Id == request.Id); + var info = _installationManager.CurrentInstallations.FirstOrDefault(i => i.Item1.Id == request.Id); if (info != null) { diff --git a/MediaBrowser.Api/PluginService.cs b/MediaBrowser.Api/PluginService.cs index 044f867ab..9409b9d0e 100644 --- a/MediaBrowser.Api/PluginService.cs +++ b/MediaBrowser.Api/PluginService.cs @@ -3,6 +3,7 @@ using MediaBrowser.Common.Extensions; using MediaBrowser.Common.Implementations.HttpServer; using MediaBrowser.Common.Security; using MediaBrowser.Controller; +using MediaBrowser.Controller.Updates; using MediaBrowser.Model.Entities; using MediaBrowser.Model.Plugins; using MediaBrowser.Model.Serialization; @@ -127,6 +128,8 @@ namespace MediaBrowser.Api private readonly ISecurityManager _securityManager; + private readonly IInstallationManager _installationManager; + /// <summary> /// Initializes a new instance of the <see cref="PluginService" /> class. /// </summary> @@ -134,7 +137,7 @@ namespace MediaBrowser.Api /// <param name="appHost">The app host.</param> /// <param name="securityManager">The security manager.</param> /// <exception cref="System.ArgumentNullException">jsonSerializer</exception> - public PluginService(IJsonSerializer jsonSerializer, IApplicationHost appHost, ISecurityManager securityManager) + public PluginService(IJsonSerializer jsonSerializer, IApplicationHost appHost, ISecurityManager securityManager, IInstallationManager installationManager) : base() { if (jsonSerializer == null) @@ -144,6 +147,7 @@ namespace MediaBrowser.Api _appHost = appHost; _securityManager = securityManager; + _installationManager = installationManager; _jsonSerializer = jsonSerializer; } @@ -254,7 +258,7 @@ namespace MediaBrowser.Api { var plugin = _appHost.Plugins.First(p => p.Id == request.Id); - Kernel.Instance.InstallationManager.UninstallPlugin(plugin); + _installationManager.UninstallPlugin(plugin); } } } |
