diff --git a/GitVersion.yml b/GitVersion.yml index 05c2cf9..a3baf60 100644 --- a/GitVersion.yml +++ b/GitVersion.yml @@ -4,4 +4,4 @@ branches: {} ignore: sha: [] merge-message-formats: {} -next-version: "3.2" \ No newline at end of file +next-version: "3.2.0" \ No newline at end of file diff --git a/imagecatalog/DataModel.cs b/imagecatalog/DataModel.cs index 080ef24..02c7b76 100644 --- a/imagecatalog/DataModel.cs +++ b/imagecatalog/DataModel.cs @@ -45,7 +45,7 @@ namespace ImageCatalog_2 public DataModel(ITestService testService, ISettingsService settingsService, ImageCreationStuff imageCreationService, PicSettings picSettings, - IMapper mapper, ILogger logger) + IMapper mapper, ILogger logger, MaddoShared.IVersionProvider? versionProvider = null) { _service = testService; _logger = logger; @@ -53,6 +53,8 @@ namespace ImageCatalog_2 _imageCreationService = imageCreationService; _picSettings = picSettings; _mapper = mapper; + // Populate AppVersion from version provider when available + AppVersion = versionProvider?.GetVersionString() ?? string.Empty; TestCommand = new RelayCommand(Test); AsyncTestCommand = new AsyncCommand(TestAsync); @@ -1123,6 +1125,17 @@ namespace ImageCatalog_2 { await _settingsService.LoadSettingsAsync(filePath, this); } + + private string _appVersion = string.Empty; + public string AppVersion + { + get => _appVersion; + set + { + _appVersion = value; + NotifyPropertyChanged(); + } + } } } diff --git a/imagecatalog/ImageCatalog 2.csproj b/imagecatalog/ImageCatalog 2.csproj index 880dc53..079d003 100644 --- a/imagecatalog/ImageCatalog 2.csproj +++ b/imagecatalog/ImageCatalog 2.csproj @@ -10,7 +10,8 @@ 3.1.2.0 3.1.2 3.1.2 - ImageCatalog2025 + + ImageCatalog default Logo.ico @@ -40,10 +41,10 @@ - - - - + + + + all @@ -61,4 +62,62 @@ + + + + + <_PublishYear>$([System.DateTime]::Now.ToString("yyyy")) + + <_Ver>$(FileVersion) + <_Ver Condition="'$(_Ver)' == ''">$(AssemblyVersion) + + + <_VerSanitized>$([System.String]::Copy('$(_Ver)')) + <_VerSanitized>$([System.String]::Copy('$(_VerSanitized)').Replace('+', '.')) + <_VerSanitized>$([System.String]::Copy('$(_VerSanitized)').Replace(' ', '_')) + + <_NewExeNameBase>ImageCatalog.$(_PublishYear).$(_VerSanitized) + + + + + + + <_Candidate1>$(PublishDir)$(TargetFileName) + <_Candidate2>$(PublishDir)$(TargetName)$(TargetExt) + <_Candidate3>$(PublishDir)$(TargetName).exe + <_Candidate4>$(PublishDir)$(AssemblyName)$(TargetExt) + <_Candidate5>$(PublishDir)$(AssemblyName).exe + + + + + <_CandidateFound>$(_Candidate1) + + + <_CandidateFound>$(_Candidate2) + + + <_CandidateFound>$(_Candidate3) + + + <_CandidateFound>$(_Candidate4) + + + <_CandidateFound>$(_Candidate5) + + + + + <_FoundExt>$([System.IO.Path]::GetExtension('$(_CandidateFound)')) + <_DestExe>$(PublishDir)$(_NewExeNameBase)$(_FoundExt) + + + + + + + \ No newline at end of file diff --git a/imagecatalog/MainForm.Designer.cs b/imagecatalog/MainForm.Designer.cs index 0ee4e01..ed17967 100644 --- a/imagecatalog/MainForm.Designer.cs +++ b/imagecatalog/MainForm.Designer.cs @@ -171,7 +171,7 @@ namespace ImageCatalog Label29 = new Label(); Label30 = new Label(); PictureBox3 = new PictureBox(); - _Label27 = new Label(); + versionLabel = new Label(); _Button7 = new Button(); _Button5 = new Button(); Label20 = new Label(); @@ -1748,15 +1748,16 @@ namespace ImageCatalog PictureBox3.TabStop = false; PictureBox3.Visible = false; // - // _Label27 + // versionLabel // - _Label27.Location = new Point(1182, 873); - _Label27.Margin = new Padding(6, 0, 6, 0); - _Label27.Name = "_Label27"; - _Label27.Size = new Size(281, 47); - _Label27.TabIndex = 62; - _Label27.Text = "Versione 2.2 2021"; - _Label27.TextAlign = ContentAlignment.MiddleRight; + versionLabel.Location = new Point(1182, 873); + versionLabel.Margin = new Padding(6, 0, 6, 0); + versionLabel.Name = "versionLabel"; + versionLabel.Size = new Size(281, 47); + versionLabel.TabIndex = 62; + versionLabel.Text = "Versione 2.2 2021"; + versionLabel.TextAlign = ContentAlignment.MiddleRight; + versionLabel.DataBindings.Add(new Binding("Text", bindingSource1, "AppVersion", true)); // // _Button7 // @@ -1872,7 +1873,7 @@ namespace ImageCatalog Controls.Add(CheckBox22); Controls.Add(Label43); Controls.Add(TabControl1); - Controls.Add(_Label27); + Controls.Add(versionLabel); Controls.Add(_Button7); Controls.Add(_Button5); Controls.Add(Label20); @@ -1997,6 +1998,7 @@ namespace ImageCatalog internal Label Label41; internal TextBox TextBox31; internal TextBox TextBox30; + internal Label versionLabel; internal GroupBox GroupBox9; internal CheckBox CheckBox17; internal CheckBox CheckBox16; diff --git a/imagecatalog/MainForm.cs b/imagecatalog/MainForm.cs index 35f6658..d63af72 100644 --- a/imagecatalog/MainForm.cs +++ b/imagecatalog/MainForm.cs @@ -32,7 +32,7 @@ public partial class MainForm private readonly PicSettings _picSettings; public MainForm(DataModel model, ImageCreationStuff imageCreationStuff, PicSettings picSettings, - ParametriSetup parametriSetup, ILogger logger, IVersionProvider versionProvider) + ParametriSetup parametriSetup, ILogger logger) { Model = model; _parametriSetup = parametriSetup; @@ -55,8 +55,7 @@ public partial class MainForm btnOpenSourceFolder.Click += BtnOpenSourceFolder_Click; btnOpenDestFolder.Click += BtnOpenDestFolder_Click; - var versionString = versionProvider?.GetVersionString() ?? "0.0.0"; - _Label27.Text = $"Version: {versionString}"; + // Version label is data-bound to DataModel.AppVersion; DataModel is populated with the version via DI } protected void BindControls() diff --git a/imagecatalog/Program.cs b/imagecatalog/Program.cs index 6bf6acd..451afbd 100644 --- a/imagecatalog/Program.cs +++ b/imagecatalog/Program.cs @@ -87,7 +87,19 @@ static class Program services.AddTransient(); services.AddTransient(); - services.AddTransient(); + services.AddTransient(sp => + { + // Resolve optional version provider and pass to DataModel + var testService = sp.GetRequiredService(); + var settingsService = sp.GetRequiredService(); + var imageCreation = sp.GetRequiredService(); + var picSettings = sp.GetRequiredService(); + var mapper = sp.GetRequiredService(); + var logger = sp.GetRequiredService>(); + var versionProvider = sp.GetService(); + + return new DataModel(testService, settingsService, imageCreation, picSettings, mapper, logger, versionProvider); + }); services.AddTransient(); services.AddTransient();