Files
BeWoPlaner/Shared/Core/BeWoAppVersion.cs
Rene Evertz d6c1a56c04 BeWoApp Version in Shared ausgelagert
-> Wird auf dem Server benötigt
2026-07-09 14:49:13 +02:00

75 lines
1.8 KiB
C#

using BS.Shared;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BS.Shared.Core
{
public class BeWoAppVersion
{
public Version BaseVersion { get; }
public BeWoClientReleaseStage Stage { get; }
public Version FeatureVersion { get; }
public BeWoClientFeature Feature { get; }
public static bool IsInDeveloperMode { get; private set; }
public BeWoAppVersion(Version baseVersion, BeWoClientReleaseStage stage, Version stageVersion, BeWoClientFeature feature = BeWoClientFeature.None)
{
BaseVersion = baseVersion;
Stage = stage;
FeatureVersion = stageVersion;
Feature = feature;
}
public void TryActiveDeveloperMode(string[] args)
{
#if !DEBUG
if (Stage != BeWoClientReleaseStage.Sandbox && Stage != BeWoClientReleaseStage.ProofOfConcept)
return;
if (args.All(x => x != "/bewodevmode" && x != "--bewodevmode"))
return;
#endif
// Darf noch nicht aktiviert sein
if (IsInDeveloperMode)
throw new NotImplementedException();
IsInDeveloperMode = true;
}
public override string ToString()
{
var sb = new StringBuilder();
sb.Append($"Version {BaseVersion}");
if (Stage == BeWoClientReleaseStage.Release)
return sb.ToString();
sb.Append(" ");
if (Feature != BeWoClientFeature.None)
{
// https://stackoverflow.com/questions/9684619/label-doesnt-display-character
sb.Append(Feature.ToString().ToLower());
sb.Append("__");
sb.Append(FeatureVersion);
sb.Append("__");
}
sb.Append($"{Stage.ToString().ToLower()}");
if (Stage == BeWoClientReleaseStage.Sandbox || Stage == BeWoClientReleaseStage.ProofOfConcept)
{
sb.Append($" (dev:{(IsInDeveloperMode ? "1" : "0")})");
}
return sb.ToString();
}
}
}