From e3132460e61d5bf701026fac8813326a2d12cca4 Mon Sep 17 00:00:00 2001 From: Pilzinsel64 Date: Thu, 25 Jul 2024 06:08:17 +0200 Subject: [PATCH] implement CompareTo --- Pilz.Updating/AppVersion.cs | 38 ++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/Pilz.Updating/AppVersion.cs b/Pilz.Updating/AppVersion.cs index 8b3d7a6..4922723 100644 --- a/Pilz.Updating/AppVersion.cs +++ b/Pilz.Updating/AppVersion.cs @@ -2,7 +2,7 @@ namespace Pilz.Updating; -public class AppVersion(Version version, int build, Channels channel) +public class AppVersion(Version version, int build, Channels channel) : IComparable, IComparable { // P r o p e r t i e s @@ -81,6 +81,42 @@ public class AppVersion(Version version, int build, Channels channel) return new AppVersion(version, build, channel); } + // C o m p a r e + + public int CompareTo(object appVersion) + { + return CompareTo(appVersion as AppVersion); + } + + public int CompareTo(AppVersion appVersion) + { + if (appVersion is null) + return 1; + + if (Version != appVersion.Version) + { + if (Version > appVersion.Version) + return 1; + return -1; + } + + if (Channel != appVersion.Channel) + { + if (Channel < appVersion.Channel) + return 1; + return -1; + } + + if (Build != appVersion.Build) + { + if (Build > appVersion.Build) + return 1; + return -1; + } + + return 0; + } + // O p e r a t o r s public static bool operator >(AppVersion a, AppVersion b)