75 lines
1.8 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|