using System.ComponentModel; using ModpackUpdater.Manager; namespace ModpackUpdater.Apps.Manager.Ui.Models.UpdatesCollectorViewMode; public record ModUpdateInfo(ModVersionInfo[] AvailableVersions, InstallAction Origin) : INotifyPropertyChanged { public event PropertyChangedEventHandler? PropertyChanged; public int NewVersion { get; set; } public bool Visible { get; set; } = true; public string? OldVersion { get { if (AvailableVersions.FirstOrDefault(n => n.Tag.Equals(Origin.SourceTag)) is { } old && !old.Name.Equals(old.Tag, StringComparison.InvariantCulture)) return $"{old.Name} ({old.Tag})"; return Origin.SourceTag; } } public IEnumerable DisplayVersions { get; } = AvailableVersions.Select(n => { if (string.IsNullOrWhiteSpace(n.Tag) || n.Tag.Equals(n.Name, StringComparison.InvariantCulture)) return n.Name; return $"{n.Name} ({n.Tag})"; }); }