aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.ServerApplication
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2013-09-13 21:56:03 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2013-09-13 21:56:03 -0400
commit889ce81d0304e6fa05c0217a767468861ecb4e67 (patch)
tree36874febe832ac8f5139f4c02544b8c50414c506 /MediaBrowser.ServerApplication
parent11de8dde82b7316423bc34c1895ab6ea5d199f66 (diff)
updated nuget
Diffstat (limited to 'MediaBrowser.ServerApplication')
-rw-r--r--MediaBrowser.ServerApplication/ApplicationHost.cs50
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