LANCommander/LANCommander.Server/Providers/VersionProvider.cs

33 lines
1 KiB
C#
Raw Permalink Normal View History

using System.Diagnostics;
using System.Reflection;
using LANCommander.Server.Services;
2025-03-16 14:35:53 -05:00
using LANCommander.Server.Services.Abstractions;
using LANCommander.Server.Services.Models;
using LANCommander.Server.Settings.Enums;
using Semver;
namespace LANCommander.Server.Providers;
public class VersionProvider : IVersionProvider
{
public SemVersion GetCurrentVersion()
{
var version = FileVersionInfo.GetVersionInfo(Assembly.GetExecutingAssembly().Location).ProductVersion;
return SemVersion.Parse(version);
}
public ReleaseChannel GetReleaseChannel(SemVersion version)
{
if (version.IsRelease)
return ReleaseChannel.Stable;
if (version.IsPrerelease && version.PrereleaseIdentifiers.Any(pi => pi.Value == "nightly"))
return ReleaseChannel.Nightly;
if (version.IsPrerelease)
return ReleaseChannel.Prerelease;
throw new ArgumentException("Could not parse version number", nameof(version));
}
}