using System; using System.Collections.Generic; using System.Linq; namespace Questionable.Model.Changelog; internal sealed record ChangelogEntry(string Version, DateOnly ReleaseDate, List Changes) { public bool IsNewVersion(string? lastViewedVersion) { if (string.IsNullOrEmpty(lastViewedVersion)) { return true; } return CompareVersions(Version, lastViewedVersion) > 0; } private static int CompareVersions(string version1, string version2) { int result; int[] array = (from p in version1.Split('.') select int.TryParse(p, out result) ? result : 0).ToArray(); int[] array2 = (from p in version2.Split('.') select int.TryParse(p, out result) ? result : 0).ToArray(); int num = Math.Max(array.Length, array2.Length); for (int num2 = 0; num2 < num; num2++) { int num3 = ((num2 < array.Length) ? array[num2] : 0); int num4 = ((num2 < array2.Length) ? array2[num2] : 0); if (num3 != num4) { return num3.CompareTo(num4); } } return 0; } }