From ca30fd41c61ef5a6d7b834261a31f608942e4fc2 Mon Sep 17 00:00:00 2001 From: MBucari Date: Sun, 27 Jul 2025 21:09:45 -0600 Subject: [PATCH] Use proper version string based on build version --- Source/FileLiberator/UtilityExtensions.cs | 3 ++- Source/LibationAvalonia/Dialogs/AboutDialog.axaml.cs | 2 +- .../Dialogs/UpgradeNotificationDialog.axaml.cs | 3 ++- Source/LibationCli/HelpVerb.cs | 3 ++- Source/LibationCli/Options/VersionOptions.cs | 5 +++-- Source/LibationFileManager/Configuration.Environment.cs | 5 +++++ Source/LibationFileManager/Templates/TemplateEditor[T].cs | 2 +- Source/LibationUiBase/GridView/LastDownloadStatus.cs | 7 ++++--- Source/LibationWinForms/Dialogs/AboutDialog.cs | 5 +++-- .../LibationWinForms/Dialogs/UpgradeNotificationDialog.cs | 2 +- 10 files changed, 24 insertions(+), 13 deletions(-) diff --git a/Source/FileLiberator/UtilityExtensions.cs b/Source/FileLiberator/UtilityExtensions.cs index 4459f09a..b0e05cf7 100644 --- a/Source/FileLiberator/UtilityExtensions.cs +++ b/Source/FileLiberator/UtilityExtensions.cs @@ -5,6 +5,7 @@ using System.Threading.Tasks; using AudibleUtilities; using DataLayer; using Dinah.Core; +using LibationFileManager; using LibationFileManager.Templates; #nullable enable @@ -66,7 +67,7 @@ namespace FileLiberator BitRate = libraryBook.Book.UserDefinedItem.LastDownloadedFormat?.BitRate, SampleRate = libraryBook.Book.UserDefinedItem.LastDownloadedFormat?.SampleRate, Channels = libraryBook.Book.UserDefinedItem.LastDownloadedFormat?.ChannelCount, - LibationVersion = libraryBook.Book.UserDefinedItem.LastDownloadedVersion?.ToString(3), + LibationVersion = libraryBook.Book.UserDefinedItem.LastDownloadedVersion?.ToVersionString(), FileVersion = libraryBook.Book.UserDefinedItem.LastDownloadedFileVersion }; } diff --git a/Source/LibationAvalonia/Dialogs/AboutDialog.axaml.cs b/Source/LibationAvalonia/Dialogs/AboutDialog.axaml.cs index 80f87d1b..8218882f 100644 --- a/Source/LibationAvalonia/Dialogs/AboutDialog.axaml.cs +++ b/Source/LibationAvalonia/Dialogs/AboutDialog.axaml.cs @@ -61,7 +61,7 @@ namespace LibationAvalonia.Dialogs private void Link_getlibation(object sender, Avalonia.Input.TappedEventArgs e) => Dinah.Core.Go.To.Url(AppScaffolding.LibationScaffolding.WebsiteUrl); private void ViewReleaseNotes_Tapped(object sender, Avalonia.Input.TappedEventArgs e) - => Dinah.Core.Go.To.Url($"{AppScaffolding.LibationScaffolding.RepositoryUrl}/releases/tag/v{AppScaffolding.LibationScaffolding.BuildVersion.ToString(3)}"); + => Dinah.Core.Go.To.Url($"{AppScaffolding.LibationScaffolding.RepositoryUrl}/releases/tag/v{AppScaffolding.LibationScaffolding.BuildVersion.ToVersionString()}"); } public class AboutVM : ViewModelBase diff --git a/Source/LibationAvalonia/Dialogs/UpgradeNotificationDialog.axaml.cs b/Source/LibationAvalonia/Dialogs/UpgradeNotificationDialog.axaml.cs index 712b4ff5..b389ce1a 100644 --- a/Source/LibationAvalonia/Dialogs/UpgradeNotificationDialog.axaml.cs +++ b/Source/LibationAvalonia/Dialogs/UpgradeNotificationDialog.axaml.cs @@ -1,6 +1,7 @@ using AppScaffolding; using Avalonia.Controls; using Dinah.Core; +using LibationFileManager; using LibationUiBase.Forms; namespace LibationAvalonia.Dialogs @@ -30,7 +31,7 @@ namespace LibationAvalonia.Dialogs public UpgradeNotificationDialog(UpgradeProperties upgradeProperties, bool canUpgrade) : this() { - Title = $"Libation version {upgradeProperties.LatestRelease.ToString(3)} is now available."; + Title = $"Libation version {upgradeProperties.LatestRelease.ToVersionString()} is now available."; PackageUrl = upgradeProperties.ZipUrl; DownloadLinkText = upgradeProperties.ZipName; ReleaseNotes = upgradeProperties.Notes; diff --git a/Source/LibationCli/HelpVerb.cs b/Source/LibationCli/HelpVerb.cs index 022873c8..22a7226f 100644 --- a/Source/LibationCli/HelpVerb.cs +++ b/Source/LibationCli/HelpVerb.cs @@ -1,6 +1,7 @@ using AppScaffolding; using CommandLine; using CommandLine.Text; +using LibationFileManager; namespace LibationCli; @@ -20,7 +21,7 @@ internal class HelpVerb { AutoVersion = false, AutoHelp = false, - Heading = $"LibationCli v{LibationScaffolding.BuildVersion.ToString(3)}", + Heading = $"LibationCli v{LibationScaffolding.BuildVersion.ToVersionString()}", AdditionalNewLineAfterOption = true, MaximumDisplayWidth = 80 }; diff --git a/Source/LibationCli/Options/VersionOptions.cs b/Source/LibationCli/Options/VersionOptions.cs index 4ebced9e..4fd9a20a 100644 --- a/Source/LibationCli/Options/VersionOptions.cs +++ b/Source/LibationCli/Options/VersionOptions.cs @@ -1,5 +1,6 @@ using AppScaffolding; using CommandLine; +using LibationFileManager; using System; using System.Threading.Tasks; @@ -14,7 +15,7 @@ internal class VersionOptions : OptionsBase protected override Task ProcessAsync() { const string checkingForUpgrade = "Checking for upgrade..."; - Console.WriteLine($"Libation {LibationScaffolding.Variety} v{LibationScaffolding.BuildVersion.ToString(3)}"); + Console.WriteLine($"Libation {LibationScaffolding.Variety} v{LibationScaffolding.BuildVersion.ToVersionString()}"); if (CheckForUpgrade) { @@ -34,7 +35,7 @@ internal class VersionOptions : OptionsBase else { Console.ForegroundColor = ConsoleColor.Red; - ReplaceConsoleText(Console.Out, checkingForUpgrade.Length, $"Upgrade Available: v{upgradeProperties.LatestRelease.ToString(3)}"); + ReplaceConsoleText(Console.Out, checkingForUpgrade.Length, $"Upgrade Available: v{upgradeProperties.LatestRelease.ToVersionString()}"); Console.WriteLine(); Console.WriteLine(); Console.WriteLine(upgradeProperties.ZipUrl); diff --git a/Source/LibationFileManager/Configuration.Environment.cs b/Source/LibationFileManager/Configuration.Environment.cs index 66ba5302..978678a2 100644 --- a/Source/LibationFileManager/Configuration.Environment.cs +++ b/Source/LibationFileManager/Configuration.Environment.cs @@ -16,6 +16,11 @@ namespace LibationFileManager MacOS = 0x400000, } + public static class Estensions + { + public static string ToVersionString(this Version version) => version.Revision > 1 ? version.ToString(4) : version.ToString(3); + } + public partial class Configuration { public static bool IsWindows { get; } = OperatingSystem.IsWindows(); diff --git a/Source/LibationFileManager/Templates/TemplateEditor[T].cs b/Source/LibationFileManager/Templates/TemplateEditor[T].cs index a92b0fe6..bc0daf2e 100644 --- a/Source/LibationFileManager/Templates/TemplateEditor[T].cs +++ b/Source/LibationFileManager/Templates/TemplateEditor[T].cs @@ -70,7 +70,7 @@ namespace LibationFileManager.Templates Narrators = [new("Stephen Fry", null)], Series = [new("Sherlock Holmes", 1, "B08376S3R2"), new("Some Other Series", 1, "B000000000")], Codec = "AAC-LC", - LibationVersion = Configuration.LibationVersion?.ToString(3), + LibationVersion = Configuration.LibationVersion?.ToVersionString(), FileVersion = "36217811", BitRate = 128, SampleRate = 44100, diff --git a/Source/LibationUiBase/GridView/LastDownloadStatus.cs b/Source/LibationUiBase/GridView/LastDownloadStatus.cs index be77d007..2427e55f 100644 --- a/Source/LibationUiBase/GridView/LastDownloadStatus.cs +++ b/Source/LibationUiBase/GridView/LastDownloadStatus.cs @@ -1,4 +1,5 @@ using DataLayer; +using LibationFileManager; using System; namespace LibationUiBase.GridView @@ -10,7 +11,7 @@ namespace LibationUiBase.GridView public string LastDownloadedFileVersion { get; } public Version LastDownloadedVersion { get; } public DateTime? LastDownloaded { get; } - public string ToolTipText => IsValid ? $"Double click to open v{LastDownloadedVersion.ToString(3)} release notes" : ""; + public string ToolTipText => IsValid ? $"Double click to open v{LastDownloadedVersion.ToVersionString()} release notes" : ""; public LastDownloadStatus() { } public LastDownloadStatus(UserDefinedItem udi) @@ -24,14 +25,14 @@ namespace LibationUiBase.GridView public void OpenReleaseUrl() { if (IsValid) - Dinah.Core.Go.To.Url($"{AppScaffolding.LibationScaffolding.RepositoryUrl}/releases/tag/v{LastDownloadedVersion.ToString(3)}"); + Dinah.Core.Go.To.Url($"{AppScaffolding.LibationScaffolding.RepositoryUrl}/releases/tag/v{LastDownloadedVersion.ToVersionString()}"); } public override string ToString() => IsValid ? $""" {dateString()} {versionString()} {LastDownloadedFormat} - Libation v{LastDownloadedVersion.ToString(3)} + Libation v{LastDownloadedVersion.ToVersionString()} """ : ""; private string versionString() => LastDownloadedFileVersion is string ver ? $"(File v.{ver})" : ""; diff --git a/Source/LibationWinForms/Dialogs/AboutDialog.cs b/Source/LibationWinForms/Dialogs/AboutDialog.cs index e1dbe072..e9f2cf51 100644 --- a/Source/LibationWinForms/Dialogs/AboutDialog.cs +++ b/Source/LibationWinForms/Dialogs/AboutDialog.cs @@ -1,4 +1,5 @@ -using LibationUiBase; +using LibationFileManager; +using LibationUiBase; using System; using System.Linq; using System.Threading.Tasks; @@ -38,7 +39,7 @@ namespace LibationWinForms.Dialogs } private void releaseNotesLbl_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) - => Dinah.Core.Go.To.Url($"{AppScaffolding.LibationScaffolding.RepositoryUrl}/releases/tag/v{AppScaffolding.LibationScaffolding.BuildVersion.ToString(3)}"); + => Dinah.Core.Go.To.Url($"{AppScaffolding.LibationScaffolding.RepositoryUrl}/releases/tag/v{AppScaffolding.LibationScaffolding.BuildVersion.ToVersionString()}"); private async void checkForUpgradeBtn_Click(object sender, EventArgs e) { diff --git a/Source/LibationWinForms/Dialogs/UpgradeNotificationDialog.cs b/Source/LibationWinForms/Dialogs/UpgradeNotificationDialog.cs index bb8bfd69..6138d3ee 100644 --- a/Source/LibationWinForms/Dialogs/UpgradeNotificationDialog.cs +++ b/Source/LibationWinForms/Dialogs/UpgradeNotificationDialog.cs @@ -18,7 +18,7 @@ namespace LibationWinForms.Dialogs public UpgradeNotificationDialog(UpgradeProperties upgradeProperties) : this() { - Text = $"Libation version {upgradeProperties.LatestRelease.ToString(3)} is now available."; + Text = $"Libation version {upgradeProperties.LatestRelease.ToVersionString()} is now available."; PackageUrl = upgradeProperties.ZipUrl; packageDlLink.Text = upgradeProperties.ZipName; releaseNotesTbox.Text = upgradeProperties.Notes;