diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-09-13 21:56:03 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-09-13 21:56:03 -0400 |
| commit | 889ce81d0304e6fa05c0217a767468861ecb4e67 (patch) | |
| tree | 36874febe832ac8f5139f4c02544b8c50414c506 /MediaBrowser.ServerApplication | |
| parent | 11de8dde82b7316423bc34c1895ab6ea5d199f66 (diff) | |
updated nuget
Diffstat (limited to 'MediaBrowser.ServerApplication')
| -rw-r--r-- | MediaBrowser.ServerApplication/ApplicationHost.cs | 50 |
1 files changed, 48 insertions, 2 deletions
diff --git a/MediaBrowser.ServerApplication/ApplicationHost.cs b/MediaBrowser.ServerApplication/ApplicationHost.cs index 57b39c209..2cc907144 100644 --- a/MediaBrowser.ServerApplication/ApplicationHost.cs +++ b/MediaBrowser.ServerApplication/ApplicationHost.cs @@ -29,6 +29,7 @@ using MediaBrowser.IsoMounter; using MediaBrowser.Model.IO; using MediaBrowser.Model.MediaInfo; using MediaBrowser.Model.System; +using MediaBrowser.Model.Updates; using MediaBrowser.Providers; using MediaBrowser.Server.Implementations; using MediaBrowser.Server.Implementations.BdInfo; @@ -687,11 +688,56 @@ namespace MediaBrowser.ServerApplication } } - protected override string ApplicationUpdatePackageName + /// <summary> + /// Checks for update. + /// </summary> + /// <param name="cancellationToken">The cancellation token.</param> + /// <param name="progress">The progress.</param> + /// <returns>Task{CheckForUpdateResult}.</returns> + public override async Task<CheckForUpdateResult> CheckForApplicationUpdate(CancellationToken cancellationToken, + IProgress<double> progress) + { + var result = await CheckForApplicationUpdateInternal(cancellationToken, progress).ConfigureAwait(false); + + return result; + } + + /// <summary> + /// Checks for application update internal. + /// </summary> + /// <param name="cancellationToken">The cancellation token.</param> + /// <param name="progress">The progress.</param> + /// <returns>Task{CheckForUpdateResult}.</returns> + private async Task<CheckForUpdateResult> CheckForApplicationUpdateInternal(CancellationToken cancellationToken, + IProgress<double> progress) { - get { return Constants.MbServerPkgName; } + var availablePackages = await InstallationManager.GetAvailablePackagesWithoutRegistrationInfo(cancellationToken).ConfigureAwait(false); + + var version = 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 }; } + /// <summary> + /// Updates the application. + /// </summary> + /// <param name="package">The package that contains the update</param> + /// <param name="cancellationToken">The cancellation token.</param> + /// <param name="progress">The progress.</param> + /// <returns>Task.</returns> + public override async Task UpdateApplication(PackageVersionInfo package, CancellationToken cancellationToken, IProgress<double> progress) + { + await InstallationManager.InstallPackage(package, progress, cancellationToken).ConfigureAwait(false); + + OnApplicationUpdated(package.version); + } + + /// <summary> + /// Gets the HTTP message handler. + /// </summary> + /// <param name="enableHttpCompression">if set to <c>true</c> [enable HTTP compression].</param> + /// <returns>HttpMessageHandler.</returns> protected override HttpMessageHandler GetHttpMessageHandler(bool enableHttpCompression) { return new WebRequestHandler |
