sourcegit/src/Models/SelfUpdate.cs
2025-03-18 15:55:32 +08:00

56 lines
1.2 KiB
C#

using System;
using System.Reflection;
using System.Text.Json.Serialization;
namespace SourceGit.Models
{
public class Version
{
[JsonPropertyName("name")]
public string Name { get; set; }
[JsonPropertyName("tag_name")]
public string TagName { get; set; }
[JsonPropertyName("body")]
public string Body { get; set; }
public bool IsNewVersion
{
get
{
try
{
System.Version version = new System.Version(TagName.Substring(1));
System.Version current = Assembly.GetExecutingAssembly().GetName().Version!;
return current.CompareTo(version) < 0;
}
catch
{
return false;
}
}
}
}
public class AlreadyUpToDate
{
}
public class SelfUpdateFailed
{
public string Reason
{
get;
private set;
}
public SelfUpdateFailed(Exception e)
{
if (e.InnerException is { } inner)
Reason = inner.Message;
else
Reason = e.Message;
}
}
}