80 lines
2.6 KiB
C#
80 lines
2.6 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Net.Http;
|
|
using System.Reflection;
|
|
using System.Text;
|
|
using System.Text.Json;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Threading;
|
|
using TeamsNetphoneLink.WPF;
|
|
|
|
namespace TeamsNetphoneLink
|
|
{
|
|
public class UpdateCheck
|
|
{
|
|
public static bool UpdateAvailable;
|
|
|
|
public static async Task<string> GetLatestReleaseTagAsync()
|
|
{
|
|
using (var client = new HttpClient())
|
|
{
|
|
var url = "https://git.jan.sx/api/v1/repos/krjan02/TeamsNetphoneLink/releases/latest";
|
|
|
|
try
|
|
{
|
|
var response = await client.GetStringAsync(url);
|
|
|
|
var json = JsonDocument.Parse(response);
|
|
|
|
if (json.RootElement.TryGetProperty("tag_name", out var tagName))
|
|
{
|
|
return tagName.GetString();
|
|
}
|
|
else
|
|
{
|
|
ExceptionWindowHelper.Show("UpdateCheck", MethodBase.GetCurrentMethod().Name, "Update Check nicht erfolgreich", "tag_name is not existing");
|
|
return "";
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
ExceptionWindowHelper.Show("UpdateCheck", MethodBase.GetCurrentMethod().Name, "Update Check nicht erfolgreich", ex.Message, ex.StackTrace);
|
|
return "";
|
|
}
|
|
}
|
|
}
|
|
|
|
public static bool IsVersionLower(string currentVersion, string releaseVersion)
|
|
{
|
|
if(releaseVersion.Length == 0) { return false; }
|
|
|
|
Version current = Version.Parse(currentVersion);
|
|
Version release = Version.Parse(releaseVersion);
|
|
|
|
return current.CompareTo(release) < 0;
|
|
}
|
|
|
|
public static string GetCurrentVersion()
|
|
{
|
|
var assembly = Assembly.GetEntryAssembly();
|
|
var versionAttribute = assembly.GetCustomAttribute<AssemblyInformationalVersionAttribute>();
|
|
var productVersion = versionAttribute?.InformationalVersion;
|
|
|
|
return productVersion.Split("+").FirstOrDefault(); ;
|
|
}
|
|
|
|
public static void UpgradeSettingsIfRequired()
|
|
{
|
|
var version = GetCurrentVersion();
|
|
if (Settings.Default.CurrentVersion != version)
|
|
{
|
|
Settings.Default.Upgrade();
|
|
Settings.Default.CurrentVersion = version;
|
|
Settings.Default.Save();
|
|
}
|
|
}
|
|
}
|
|
}
|