초기커밋
This commit is contained in:
138
ServerBase/Helper/ProgramVersionHelper.cs
Normal file
138
ServerBase/Helper/ProgramVersionHelper.cs
Normal file
@@ -0,0 +1,138 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
||||
using NLog.LayoutRenderers.Wrappers;
|
||||
|
||||
|
||||
using ServerCore; using ServerBase;
|
||||
|
||||
|
||||
namespace ServerBase;
|
||||
|
||||
public static class ProgramVersionHelper
|
||||
{
|
||||
public static ServerErrorCode checkClientProgramVersion( ServerConfig config
|
||||
, ServerProgramVersion serverProgramVersion
|
||||
, ClientProgramVersion clientVersion )
|
||||
{
|
||||
ArgumentNullException.ThrowIfNull(config, $"config is null !!!");
|
||||
ArgumentNullException.ThrowIfNull(serverProgramVersion, $"serverProgramVersion is null !!!");
|
||||
|
||||
var err_msg = string.Empty;
|
||||
|
||||
if (null == clientVersion)
|
||||
{
|
||||
err_msg = $"ClientProgramVersion is null !!!";
|
||||
Log.getLogger().error(err_msg);
|
||||
return ServerErrorCode.ClientProgramVersionIsNull;
|
||||
}
|
||||
|
||||
var version_paths = config.getVersionPaths();
|
||||
ArgumentNullException.ThrowIfNull(version_paths, $"version_paths is null !!!");
|
||||
|
||||
foreach ( var each in version_paths )
|
||||
{
|
||||
var version_type = each.Key;
|
||||
|
||||
switch(version_type)
|
||||
{
|
||||
case ProgramVersionType.MetaSchemaVersion:
|
||||
if (serverProgramVersion.MetaSchemaVersion != clientVersion.MetaSchemaVersion)
|
||||
{
|
||||
err_msg = $"Not match MetaSchema Version !!! : serverMetaSchemaVersion:{serverProgramVersion.MetaSchemaVersion} == clientMetaSchemaVersion:{clientVersion.MetaSchemaVersion}";
|
||||
Log.getLogger().error(err_msg);
|
||||
return ServerErrorCode.MetaSchemaVersionNotMatch;
|
||||
}
|
||||
break;
|
||||
|
||||
case ProgramVersionType.MetaDataVersion:
|
||||
if (serverProgramVersion.MetaDataVersion != clientVersion.MetaDataVersion)
|
||||
{
|
||||
err_msg = $"Not match MetaData Version !!! : serverMetaDataVersion:{serverProgramVersion.MetaDataVersion} == clientMetaDataVersion:{clientVersion.MetaDataVersion}";
|
||||
Log.getLogger().error(err_msg);
|
||||
return ServerErrorCode.MetaDataVersionNotMatch;
|
||||
}
|
||||
break;
|
||||
|
||||
case ProgramVersionType.PacketVersion:
|
||||
if (serverProgramVersion.PacketVersion != clientVersion.PacketVersion)
|
||||
{
|
||||
err_msg = $"Not match Packet Version !!! : serverPacketVersion:{serverProgramVersion.PacketVersion} == clientPacketVersion:{clientVersion.PacketVersion}";
|
||||
Log.getLogger().error(err_msg);
|
||||
return ServerErrorCode.PacketVersionNotMatch;
|
||||
}
|
||||
break;
|
||||
|
||||
case ProgramVersionType.ResourceVersion:
|
||||
if (serverProgramVersion.ResourceVersion != clientVersion.ResourceVersion)
|
||||
{
|
||||
err_msg = $"Not match ResourceVersion Version !!! : serverPacketVersion:{serverProgramVersion.ResourceVersion} == clientResourceVersion:{clientVersion.ResourceVersion}";
|
||||
Log.getLogger().error(err_msg);
|
||||
return ServerErrorCode.ResourceVersionNotMatch;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if (config.ClientMinimumRequiredLogicVersion > clientVersion.LogicVersion)
|
||||
{
|
||||
err_msg = $"Not match ClientLogic Version !!! : ClientMinimumRequiredLogicVersion:{config.ClientMinimumRequiredLogicVersion} <= clientLogicVersion:{clientVersion.LogicVersion}";
|
||||
Log.getLogger().error(err_msg);
|
||||
return ServerErrorCode.ClientLogicVersionNotMatch;
|
||||
}
|
||||
}
|
||||
|
||||
return ServerErrorCode.Success;
|
||||
}
|
||||
|
||||
public static Result appendVersion( this ServerProgramVersion programVersion
|
||||
, ProgramVersionType versionType
|
||||
, Int32 buildVersion, Int32 revisionVersion )
|
||||
{
|
||||
var result = new Result();
|
||||
|
||||
switch(versionType)
|
||||
{
|
||||
case ProgramVersionType.MetaSchemaVersion:
|
||||
programVersion.MetaSchemaVersion = (ulong)revisionVersion;
|
||||
break;
|
||||
|
||||
case ProgramVersionType.MetaDataVersion:
|
||||
programVersion.MetaDataVersion = (ulong)revisionVersion;
|
||||
break;
|
||||
|
||||
case ProgramVersionType.DbSchemaVersion:
|
||||
programVersion.DbSchemaVersion = (ulong)revisionVersion;
|
||||
break;
|
||||
|
||||
case ProgramVersionType.PacketVersion:
|
||||
programVersion.PacketVersion = (ulong)revisionVersion;
|
||||
break;
|
||||
|
||||
case ProgramVersionType.ResourceVersion:
|
||||
programVersion.ResourceVersion = (ulong)revisionVersion;
|
||||
break;
|
||||
|
||||
case ProgramVersionType.ConfigVersion:
|
||||
programVersion.ConfigVersion = (ulong)revisionVersion;
|
||||
break;
|
||||
|
||||
case ProgramVersionType.LogicVersion:
|
||||
var logic_version = new LogicVersion();
|
||||
programVersion.LogicVersion = logic_version;
|
||||
logic_version.Revision = revisionVersion;
|
||||
break;
|
||||
|
||||
default:
|
||||
var err_msg = $"Invaoid ProgramVersionType !!! : ProgramVersionType:{versionType}";
|
||||
Log.getLogger().error(err_msg);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user