Refactor version retrieval to use Assembly.GetName().Version and add version formatting in GetSystemVersion and GetServiceVersion queries

master
Tudor Stanciu 2025-04-27 03:17:17 +03:00
parent 5ab5d0777f
commit 5fe5fb9f4f
2 changed files with 17 additions and 5 deletions

View File

@ -3,6 +3,7 @@ using Microsoft.Extensions.Logging;
using NetworkResurrector.Server.Wrapper.Services; using NetworkResurrector.Server.Wrapper.Services;
using System; using System;
using System.IO; using System.IO;
using System.Linq;
using System.Reflection; using System.Reflection;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
@ -35,12 +36,12 @@ namespace NetworkResurrector.Api.Application.Queries
public async Task<Model> Handle(Query request, CancellationToken cancellationToken) public async Task<Model> Handle(Query request, CancellationToken cancellationToken)
{ {
var apiVersion = GetApiVersion(); var apiVersion = GetApiVersion();
var serverVersion = await GetServerVersion(); var (version, lastUpdateDate) = await GetServerVersion();
var result = new Model var result = new Model
{ {
Api = apiVersion, Api = apiVersion,
Server = serverVersion Server = new ServiceVersion(FormatVersion(version), lastUpdateDate)
}; };
return result; return result;
@ -52,7 +53,7 @@ namespace NetworkResurrector.Api.Application.Queries
var appDate = Environment.GetEnvironmentVariable("APP_DATE"); var appDate = Environment.GetEnvironmentVariable("APP_DATE");
if (string.IsNullOrEmpty(version)) if (string.IsNullOrEmpty(version))
version = Assembly.GetEntryAssembly().GetCustomAttribute<AssemblyInformationalVersionAttribute>().InformationalVersion; version = Assembly.GetEntryAssembly().GetName().Version.ToString();
if (!DateTime.TryParse(appDate, out var lastReleaseDate)) if (!DateTime.TryParse(appDate, out var lastReleaseDate))
{ {
@ -60,7 +61,7 @@ namespace NetworkResurrector.Api.Application.Queries
lastReleaseDate = File.GetLastWriteTime(location); lastReleaseDate = File.GetLastWriteTime(location);
} }
var result = new ServiceVersion(version, lastReleaseDate); var result = new ServiceVersion(FormatVersion(version), lastReleaseDate);
return result; return result;
} }
@ -77,6 +78,17 @@ namespace NetworkResurrector.Api.Application.Queries
} }
return new ServiceVersion("0.0.0", DateTime.MinValue); return new ServiceVersion("0.0.0", DateTime.MinValue);
} }
private string FormatVersion(string version)
{
if (string.IsNullOrEmpty(version))
return string.Empty;
var parts = version.Split('.');
if (parts.Length < 3)
return version;
var shortVersion = string.Join('.', parts.Take(3));
return shortVersion;
}
} }
} }
} }

View File

@ -24,7 +24,7 @@ namespace NetworkResurrector.Server.Application.Queries
var appDate = Environment.GetEnvironmentVariable("APP_DATE"); var appDate = Environment.GetEnvironmentVariable("APP_DATE");
if (string.IsNullOrEmpty(version)) if (string.IsNullOrEmpty(version))
version = Assembly.GetEntryAssembly().GetCustomAttribute<AssemblyInformationalVersionAttribute>().InformationalVersion; version = Assembly.GetEntryAssembly().GetName().Version.ToString();
if (!DateTime.TryParse(appDate, out var lastReleaseDate)) if (!DateTime.TryParse(appDate, out var lastReleaseDate))
{ {