aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.ServerApplication/Native/NativeApp.cs
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2014-08-06 22:51:09 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2014-08-06 22:51:09 -0400
commit5d5a0e3addd206f86a10e5be127efde0453cd419 (patch)
tree0554322a0f26335297983f2423177af81b4fd5bd /MediaBrowser.ServerApplication/Native/NativeApp.cs
parent56e4d6730f5a0e0103cd6c397cc0f1b26935d5c9 (diff)
updated nuget
Diffstat (limited to 'MediaBrowser.ServerApplication/Native/NativeApp.cs')
-rw-r--r--MediaBrowser.ServerApplication/Native/NativeApp.cs27
1 files changed, 26 insertions, 1 deletions
diff --git a/MediaBrowser.ServerApplication/Native/NativeApp.cs b/MediaBrowser.ServerApplication/Native/NativeApp.cs
index 2388b610b..0e7dc50a9 100644
--- a/MediaBrowser.ServerApplication/Native/NativeApp.cs
+++ b/MediaBrowser.ServerApplication/Native/NativeApp.cs
@@ -1,4 +1,10 @@
-using System.Runtime.InteropServices;
+using System;
+using System.Runtime.InteropServices;
+using System.Threading;
+using System.Threading.Tasks;
+using MediaBrowser.Common.Updates;
+using MediaBrowser.Model.Logging;
+using MediaBrowser.Model.Updates;
namespace MediaBrowser.ServerApplication.Native
{
@@ -84,5 +90,24 @@ namespace MediaBrowser.ServerApplication.Native
EXECUTION_STATE es = SetThreadExecutionState(EXECUTION_STATE.ES_SYSTEM_REQUIRED);
}
}
+
+ public static async Task<CheckForUpdateResult> CheckForApplicationUpdate(Version currentVersion,
+ PackageVersionClass updateLevel,
+ IInstallationManager installationManager,
+ CancellationToken cancellationToken,
+ IProgress<double> progress)
+ {
+ var availablePackages = await installationManager.GetAvailablePackagesWithoutRegistrationInfo(cancellationToken).ConfigureAwait(false);
+
+ var version = installationManager.GetLatestCompatibleVersion(availablePackages, "MBServer", null, currentVersion, updateLevel);
+
+ var versionObject = version == null || string.IsNullOrWhiteSpace(version.versionStr) ? null : new Version(version.versionStr);
+
+ var isUpdateAvailable = versionObject != null && versionObject > currentVersion;
+
+ return versionObject != null ?
+ new CheckForUpdateResult { AvailableVersion = versionObject.ToString(), IsUpdateAvailable = isUpdateAvailable, Package = version } :
+ new CheckForUpdateResult { AvailableVersion = currentVersion.ToString(), IsUpdateAvailable = false };
+ }
}
}