32 lines
No EOL
991 B
C#
32 lines
No EOL
991 B
C#
using System.Diagnostics;
|
|
using System.Reflection;
|
|
using LANCommander.Server.Services;
|
|
using LANCommander.Server.Services.Abstractions;
|
|
using LANCommander.Server.Services.Models;
|
|
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));
|
|
}
|
|
} |