diff --git a/.gitignore b/Gateway/.gitignore similarity index 100% rename from .gitignore rename to Gateway/.gitignore diff --git a/LICENSE b/Gateway/LICENSE similarity index 100% rename from LICENSE rename to Gateway/LICENSE diff --git a/README.md b/Gateway/README.md similarity index 100% rename from README.md rename to Gateway/README.md diff --git a/README.zh-CN.md b/Gateway/README.zh-CN.md similarity index 100% rename from README.zh-CN.md rename to Gateway/README.zh-CN.md diff --git a/icon.ico b/Gateway/icon.ico similarity index 100% rename from icon.ico rename to Gateway/icon.ico diff --git a/icon.png b/Gateway/icon.png similarity index 100% rename from icon.png rename to Gateway/icon.png diff --git a/src/.editorconfig b/Gateway/src/.editorconfig similarity index 100% rename from src/.editorconfig rename to Gateway/src/.editorconfig diff --git a/src/Directory.Build.props b/Gateway/src/Directory.Build.props similarity index 100% rename from src/Directory.Build.props rename to Gateway/src/Directory.Build.props diff --git a/src/Foundation.props b/Gateway/src/Foundation.props similarity index 100% rename from src/Foundation.props rename to Gateway/src/Foundation.props diff --git a/src/Foundation/ThingsGateway.CSScript/CSharpScriptEngineExtension.cs b/Gateway/src/Foundation/ThingsGateway.CSScript/CSharpScriptEngineExtension.cs similarity index 100% rename from src/Foundation/ThingsGateway.CSScript/CSharpScriptEngineExtension.cs rename to Gateway/src/Foundation/ThingsGateway.CSScript/CSharpScriptEngineExtension.cs diff --git a/src/Foundation/ThingsGateway.CSScript/ExpressionEvaluatorExtension.cs b/Gateway/src/Foundation/ThingsGateway.CSScript/ExpressionEvaluatorExtension.cs similarity index 100% rename from src/Foundation/ThingsGateway.CSScript/ExpressionEvaluatorExtension.cs rename to Gateway/src/Foundation/ThingsGateway.CSScript/ExpressionEvaluatorExtension.cs diff --git a/src/Foundation/ThingsGateway.CSScript/ThingsGateway.CSScript.csproj b/Gateway/src/Foundation/ThingsGateway.CSScript/ThingsGateway.CSScript.csproj similarity index 100% rename from src/Foundation/ThingsGateway.CSScript/ThingsGateway.CSScript.csproj rename to Gateway/src/Foundation/ThingsGateway.CSScript/ThingsGateway.CSScript.csproj diff --git a/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/AdapterDebugBase.cs b/Gateway/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/AdapterDebugBase.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/AdapterDebugBase.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/AdapterDebugBase.cs diff --git a/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/AdapterDebugComponent.razor b/Gateway/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/AdapterDebugComponent.razor similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/AdapterDebugComponent.razor rename to Gateway/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/AdapterDebugComponent.razor diff --git a/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/AdapterDebugComponent.razor.cs b/Gateway/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/AdapterDebugComponent.razor.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/AdapterDebugComponent.razor.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/AdapterDebugComponent.razor.cs diff --git a/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/ChannelDataDebugComponent.razor b/Gateway/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/ChannelDataDebugComponent.razor similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/ChannelDataDebugComponent.razor rename to Gateway/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/ChannelDataDebugComponent.razor diff --git a/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/ChannelDataDebugComponent.razor.cs b/Gateway/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/ChannelDataDebugComponent.razor.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/ChannelDataDebugComponent.razor.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/ChannelDataDebugComponent.razor.cs diff --git a/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/LogConsole.razor b/Gateway/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/LogConsole.razor similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/LogConsole.razor rename to Gateway/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/LogConsole.razor diff --git a/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/LogConsole.razor.cs b/Gateway/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/LogConsole.razor.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/LogConsole.razor.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation.Razor/DebugPages/LogConsole.razor.cs diff --git a/src/Foundation/ThingsGateway.Foundation.Razor/Locales/en-US.json b/Gateway/src/Foundation/ThingsGateway.Foundation.Razor/Locales/en-US.json similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.Razor/Locales/en-US.json rename to Gateway/src/Foundation/ThingsGateway.Foundation.Razor/Locales/en-US.json diff --git a/src/Foundation/ThingsGateway.Foundation.Razor/Locales/zh-CN.json b/Gateway/src/Foundation/ThingsGateway.Foundation.Razor/Locales/zh-CN.json similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.Razor/Locales/zh-CN.json rename to Gateway/src/Foundation/ThingsGateway.Foundation.Razor/Locales/zh-CN.json diff --git a/src/Foundation/ThingsGateway.Foundation.Razor/Locales/zh-TW.json b/Gateway/src/Foundation/ThingsGateway.Foundation.Razor/Locales/zh-TW.json similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.Razor/Locales/zh-TW.json rename to Gateway/src/Foundation/ThingsGateway.Foundation.Razor/Locales/zh-TW.json diff --git a/src/Foundation/ThingsGateway.Foundation.Razor/Services/HybridPlatformService.cs b/Gateway/src/Foundation/ThingsGateway.Foundation.Razor/Services/HybridPlatformService.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.Razor/Services/HybridPlatformService.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation.Razor/Services/HybridPlatformService.cs diff --git a/src/Foundation/ThingsGateway.Foundation.Razor/Services/IPlatformService.cs b/Gateway/src/Foundation/ThingsGateway.Foundation.Razor/Services/IPlatformService.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.Razor/Services/IPlatformService.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation.Razor/Services/IPlatformService.cs diff --git a/src/Foundation/ThingsGateway.Foundation.Razor/Services/PlatformService.cs b/Gateway/src/Foundation/ThingsGateway.Foundation.Razor/Services/PlatformService.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.Razor/Services/PlatformService.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation.Razor/Services/PlatformService.cs diff --git a/src/Foundation/ThingsGateway.Foundation.Razor/Startup.cs b/Gateway/src/Foundation/ThingsGateway.Foundation.Razor/Startup.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.Razor/Startup.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation.Razor/Startup.cs diff --git a/src/Foundation/ThingsGateway.Foundation.Razor/ThingsGateway.Foundation.Razor.csproj b/Gateway/src/Foundation/ThingsGateway.Foundation.Razor/ThingsGateway.Foundation.Razor.csproj similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.Razor/ThingsGateway.Foundation.Razor.csproj rename to Gateway/src/Foundation/ThingsGateway.Foundation.Razor/ThingsGateway.Foundation.Razor.csproj diff --git a/src/Foundation/ThingsGateway.Foundation.Razor/_Imports.razor b/Gateway/src/Foundation/ThingsGateway.Foundation.Razor/_Imports.razor similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.Razor/_Imports.razor rename to Gateway/src/Foundation/ThingsGateway.Foundation.Razor/_Imports.razor diff --git a/src/Foundation/ThingsGateway.Foundation.Razor/_Imports.razor.cs b/Gateway/src/Foundation/ThingsGateway.Foundation.Razor/_Imports.razor.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.Razor/_Imports.razor.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation.Razor/_Imports.razor.cs diff --git a/src/Foundation/ThingsGateway.Foundation.SourceGenerator/GlobalUsings.cs b/Gateway/src/Foundation/ThingsGateway.Foundation.SourceGenerator/GlobalUsings.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.SourceGenerator/GlobalUsings.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation.SourceGenerator/GlobalUsings.cs diff --git a/src/Foundation/ThingsGateway.Foundation.SourceGenerator/SourceGenerator/Utils.cs b/Gateway/src/Foundation/ThingsGateway.Foundation.SourceGenerator/SourceGenerator/Utils.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.SourceGenerator/SourceGenerator/Utils.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation.SourceGenerator/SourceGenerator/Utils.cs diff --git a/src/Foundation/ThingsGateway.Foundation.SourceGenerator/SourceGenerator/VariableCodeBuilder.cs b/Gateway/src/Foundation/ThingsGateway.Foundation.SourceGenerator/SourceGenerator/VariableCodeBuilder.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.SourceGenerator/SourceGenerator/VariableCodeBuilder.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation.SourceGenerator/SourceGenerator/VariableCodeBuilder.cs diff --git a/src/Foundation/ThingsGateway.Foundation.SourceGenerator/SourceGenerator/VariableObjectSourceGenerator.cs b/Gateway/src/Foundation/ThingsGateway.Foundation.SourceGenerator/SourceGenerator/VariableObjectSourceGenerator.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.SourceGenerator/SourceGenerator/VariableObjectSourceGenerator.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation.SourceGenerator/SourceGenerator/VariableObjectSourceGenerator.cs diff --git a/src/Foundation/ThingsGateway.Foundation.SourceGenerator/SourceGenerator/VariableSyntaxReceiver.cs b/Gateway/src/Foundation/ThingsGateway.Foundation.SourceGenerator/SourceGenerator/VariableSyntaxReceiver.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.SourceGenerator/SourceGenerator/VariableSyntaxReceiver.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation.SourceGenerator/SourceGenerator/VariableSyntaxReceiver.cs diff --git a/src/Foundation/ThingsGateway.Foundation.SourceGenerator/ThingsGateway.Foundation.SourceGenerator.csproj b/Gateway/src/Foundation/ThingsGateway.Foundation.SourceGenerator/ThingsGateway.Foundation.SourceGenerator.csproj similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.SourceGenerator/ThingsGateway.Foundation.SourceGenerator.csproj rename to Gateway/src/Foundation/ThingsGateway.Foundation.SourceGenerator/ThingsGateway.Foundation.SourceGenerator.csproj diff --git a/src/Foundation/ThingsGateway.Foundation.SourceGenerator/tools/install.ps1 b/Gateway/src/Foundation/ThingsGateway.Foundation.SourceGenerator/tools/install.ps1 similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.SourceGenerator/tools/install.ps1 rename to Gateway/src/Foundation/ThingsGateway.Foundation.SourceGenerator/tools/install.ps1 diff --git a/src/Foundation/ThingsGateway.Foundation.SourceGenerator/tools/uninstall.ps1 b/Gateway/src/Foundation/ThingsGateway.Foundation.SourceGenerator/tools/uninstall.ps1 similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.SourceGenerator/tools/uninstall.ps1 rename to Gateway/src/Foundation/ThingsGateway.Foundation.SourceGenerator/tools/uninstall.ps1 diff --git a/src/Foundation/ThingsGateway.Foundation.Variable/GlobalUsings.cs b/Gateway/src/Foundation/ThingsGateway.Foundation.Variable/GlobalUsings.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.Variable/GlobalUsings.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation.Variable/GlobalUsings.cs diff --git a/src/Foundation/ThingsGateway.Foundation.Variable/ThingsGateway.Foundation.Variable.csproj b/Gateway/src/Foundation/ThingsGateway.Foundation.Variable/ThingsGateway.Foundation.Variable.csproj similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.Variable/ThingsGateway.Foundation.Variable.csproj rename to Gateway/src/Foundation/ThingsGateway.Foundation.Variable/ThingsGateway.Foundation.Variable.csproj diff --git a/src/Foundation/ThingsGateway.Foundation.Variable/VariableObject.cs b/Gateway/src/Foundation/ThingsGateway.Foundation.Variable/VariableObject.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.Variable/VariableObject.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation.Variable/VariableObject.cs diff --git a/src/Foundation/ThingsGateway.Foundation.Variable/VariableObjectHelper.cs b/Gateway/src/Foundation/ThingsGateway.Foundation.Variable/VariableObjectHelper.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.Variable/VariableObjectHelper.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation.Variable/VariableObjectHelper.cs diff --git a/src/Foundation/ThingsGateway.Foundation.Variable/VariableRuntimeAttribute.cs b/Gateway/src/Foundation/ThingsGateway.Foundation.Variable/VariableRuntimeAttribute.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.Variable/VariableRuntimeAttribute.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation.Variable/VariableRuntimeAttribute.cs diff --git a/src/Foundation/ThingsGateway.Foundation.Variable/VariableRuntimeProperty.cs b/Gateway/src/Foundation/ThingsGateway.Foundation.Variable/VariableRuntimeProperty.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation.Variable/VariableRuntimeProperty.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation.Variable/VariableRuntimeProperty.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Channel/ChannelData.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Channel/ChannelData.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Channel/ChannelData.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Channel/ChannelData.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Channel/Extension/ChannelConfigExtensions.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Channel/Extension/ChannelConfigExtensions.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Channel/Extension/ChannelConfigExtensions.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Channel/Extension/ChannelConfigExtensions.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Channel/IAdapterObject.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Channel/IAdapterObject.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Channel/IAdapterObject.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Channel/IAdapterObject.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Channel/IChannel.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Channel/IChannel.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Channel/IChannel.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Channel/IChannel.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Channel/IClientChannel.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Channel/IClientChannel.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Channel/IClientChannel.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Channel/IClientChannel.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Channel/Plugin/DtuPlugin.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Channel/Plugin/DtuPlugin.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Channel/Plugin/DtuPlugin.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Channel/Plugin/DtuPlugin.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Channel/Plugin/HeartbeatAndReceivePlugin.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Channel/Plugin/HeartbeatAndReceivePlugin.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Channel/Plugin/HeartbeatAndReceivePlugin.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Channel/Plugin/HeartbeatAndReceivePlugin.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Channel/Plugin/IDtu.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Channel/Plugin/IDtu.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Channel/Plugin/IDtu.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Channel/Plugin/IDtu.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Channel/Plugin/IDtuClient.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Channel/Plugin/IDtuClient.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Channel/Plugin/IDtuClient.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Channel/Plugin/IDtuClient.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Channel/Plugin/ITcpService.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Channel/Plugin/ITcpService.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Channel/Plugin/ITcpService.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Channel/Plugin/ITcpService.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Channel/Plugin/PluginUtil.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Channel/Plugin/PluginUtil.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Channel/Plugin/PluginUtil.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Channel/Plugin/PluginUtil.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Channel/SerialPortChannel.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Channel/SerialPortChannel.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Channel/SerialPortChannel.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Channel/SerialPortChannel.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Channel/TcpClientChannel.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Channel/TcpClientChannel.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Channel/TcpClientChannel.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Channel/TcpClientChannel.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Channel/TcpServiceChannel.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Channel/TcpServiceChannel.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Channel/TcpServiceChannel.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Channel/TcpServiceChannel.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Channel/TcpSessionClientChannel.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Channel/TcpSessionClientChannel.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Channel/TcpSessionClientChannel.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Channel/TcpSessionClientChannel.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Channel/UdpSessionChannel.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Channel/UdpSessionChannel.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Channel/UdpSessionChannel.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Channel/UdpSessionChannel.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Common/IncrementCount.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Common/IncrementCount.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Common/IncrementCount.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Common/IncrementCount.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Common/TimeTick.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Common/TimeTick.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Common/TimeTick.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Common/TimeTick.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Common/WaitLock.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Common/WaitLock.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Common/WaitLock.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Common/WaitLock.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Converter/JsonStringToClassSerializerFormatter.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Converter/JsonStringToClassSerializerFormatter.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Converter/JsonStringToClassSerializerFormatter.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Converter/JsonStringToClassSerializerFormatter.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Converter/StringConverter.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Converter/StringConverter.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Converter/StringConverter.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Converter/StringConverter.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Converter/StringToEncodingConverter.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Converter/StringToEncodingConverter.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Converter/StringToEncodingConverter.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Converter/StringToEncodingConverter.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Converter/ThingsGatewayStringConverter.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Converter/ThingsGatewayStringConverter.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Converter/ThingsGatewayStringConverter.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Converter/ThingsGatewayStringConverter.cs diff --git a/src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/IResultMessage.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/IResultMessage.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/IResultMessage.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/IResultMessage.cs diff --git a/src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/ISendMessage.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/ISendMessage.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/ISendMessage.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/ISendMessage.cs diff --git a/src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/MessageBase.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/MessageBase.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/MessageBase.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/MessageBase.cs diff --git a/src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/ProtocolSingleStreamDataHandleAdapter.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/ProtocolSingleStreamDataHandleAdapter.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/ProtocolSingleStreamDataHandleAdapter.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/ProtocolSingleStreamDataHandleAdapter.cs diff --git a/src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/ProtocolUdpDataHandleAdapter.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/ProtocolUdpDataHandleAdapter.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/ProtocolUdpDataHandleAdapter.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/DataHandleAdapter/ProtocolUdpDataHandleAdapter.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Enums/BcdFormatEnum.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Enums/BcdFormatEnum.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Enums/BcdFormatEnum.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Enums/BcdFormatEnum.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Enums/ChannelEnum.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Enums/ChannelEnum.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Enums/ChannelEnum.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Enums/ChannelEnum.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Enums/DataFormatEnum.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Enums/DataFormatEnum.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Enums/DataFormatEnum.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Enums/DataFormatEnum.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Enums/DataTypeEnum.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Enums/DataTypeEnum.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Enums/DataTypeEnum.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Enums/DataTypeEnum.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Extensions/BoolExtensions.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Extensions/BoolExtensions.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Extensions/BoolExtensions.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Extensions/BoolExtensions.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Extensions/ByteExtensions.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Extensions/ByteExtensions.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Extensions/ByteExtensions.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Extensions/ByteExtensions.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Extensions/DataTypeExtensions.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Extensions/DataTypeExtensions.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Extensions/DataTypeExtensions.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Extensions/DataTypeExtensions.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Extensions/DateTimeExtensions.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Extensions/DateTimeExtensions.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Extensions/DateTimeExtensions.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Extensions/DateTimeExtensions.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Extensions/ExceptionExtensions.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Extensions/ExceptionExtensions.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Extensions/ExceptionExtensions.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Extensions/ExceptionExtensions.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Extensions/ExpandoObjectExtensions.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Extensions/ExpandoObjectExtensions.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Extensions/ExpandoObjectExtensions.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Extensions/ExpandoObjectExtensions.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Extensions/GenericExtensions.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Extensions/GenericExtensions.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Extensions/GenericExtensions.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Extensions/GenericExtensions.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Extensions/LoggerExtensions.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Extensions/LoggerExtensions.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Extensions/LoggerExtensions.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Extensions/LoggerExtensions.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Extensions/StringExtensions.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Extensions/StringExtensions.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Extensions/StringExtensions.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Extensions/StringExtensions.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Extensions/TypeExtensions.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Extensions/TypeExtensions.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Extensions/TypeExtensions.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Extensions/TypeExtensions.cs diff --git a/src/Foundation/ThingsGateway.Foundation/GlobalUsings.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/GlobalUsings.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/GlobalUsings.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/GlobalUsings.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Locales/DefaultResource.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Locales/DefaultResource.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Locales/DefaultResource.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Locales/DefaultResource.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Locales/en-US.json b/Gateway/src/Foundation/ThingsGateway.Foundation/Locales/en-US.json similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Locales/en-US.json rename to Gateway/src/Foundation/ThingsGateway.Foundation/Locales/en-US.json diff --git a/src/Foundation/ThingsGateway.Foundation/Locales/zh-CN.json b/Gateway/src/Foundation/ThingsGateway.Foundation/Locales/zh-CN.json similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Locales/zh-CN.json rename to Gateway/src/Foundation/ThingsGateway.Foundation/Locales/zh-CN.json diff --git a/src/Foundation/ThingsGateway.Foundation/Locales/zh-TW.json b/Gateway/src/Foundation/ThingsGateway.Foundation/Locales/zh-TW.json similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Locales/zh-TW.json rename to Gateway/src/Foundation/ThingsGateway.Foundation/Locales/zh-TW.json diff --git a/src/Foundation/ThingsGateway.Foundation/Localization/JsonLocalizer.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Localization/JsonLocalizer.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Localization/JsonLocalizer.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Localization/JsonLocalizer.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Logger/TextFileLogger.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Logger/TextFileLogger.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Logger/TextFileLogger.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Logger/TextFileLogger.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Logger/TextFileReader.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Logger/TextFileReader.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Logger/TextFileReader.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Logger/TextFileReader.cs diff --git a/src/Foundation/ThingsGateway.Foundation/OperResult/ErrorCodeEnum.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/OperResult/ErrorCodeEnum.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/OperResult/ErrorCodeEnum.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/OperResult/ErrorCodeEnum.cs diff --git a/src/Foundation/ThingsGateway.Foundation/OperResult/IOperResult.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/OperResult/IOperResult.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/OperResult/IOperResult.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/OperResult/IOperResult.cs diff --git a/src/Foundation/ThingsGateway.Foundation/OperResult/OperResult.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/OperResult/OperResult.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/OperResult/OperResult.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/OperResult/OperResult.cs diff --git a/src/Foundation/ThingsGateway.Foundation/OperResult/OperResultExtension.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/OperResult/OperResultExtension.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/OperResult/OperResultExtension.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/OperResult/OperResultExtension.cs diff --git a/src/Foundation/ThingsGateway.Foundation/OperResult/OperResultUtil.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/OperResult/OperResultUtil.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/OperResult/OperResultUtil.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/OperResult/OperResultUtil.cs diff --git a/src/Foundation/ThingsGateway.Foundation/OperResult/ReturnErrorException.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/OperResult/ReturnErrorException.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/OperResult/ReturnErrorException.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/OperResult/ReturnErrorException.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Protocol/IProtocol.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Protocol/IProtocol.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Protocol/IProtocol.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Protocol/IProtocol.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Protocol/ProtocolBase.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Protocol/ProtocolBase.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Protocol/ProtocolBase.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Protocol/ProtocolBase.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Protocol/ProtocolBaseExtension.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Protocol/ProtocolBaseExtension.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Protocol/ProtocolBaseExtension.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Protocol/ProtocolBaseExtension.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Protocol/ProtocolWaitDataStatusExtension.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Protocol/ProtocolWaitDataStatusExtension.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Protocol/ProtocolWaitDataStatusExtension.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Protocol/ProtocolWaitDataStatusExtension.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Protocol/StructContentPraseExtensions.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Protocol/StructContentPraseExtensions.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Protocol/StructContentPraseExtensions.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Protocol/StructContentPraseExtensions.cs diff --git a/src/Foundation/ThingsGateway.Foundation/ThingsGateway.Foundation.csproj b/Gateway/src/Foundation/ThingsGateway.Foundation/ThingsGateway.Foundation.csproj similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/ThingsGateway.Foundation.csproj rename to Gateway/src/Foundation/ThingsGateway.Foundation/ThingsGateway.Foundation.csproj diff --git a/src/Foundation/ThingsGateway.Foundation/Trans/EncodingConverter.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Trans/EncodingConverter.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Trans/EncodingConverter.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Trans/EncodingConverter.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Trans/IThingsGatewayBitConverter.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Trans/IThingsGatewayBitConverter.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Trans/IThingsGatewayBitConverter.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Trans/IThingsGatewayBitConverter.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Trans/ThingsGatewayBitConverter.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Trans/ThingsGatewayBitConverter.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Trans/ThingsGatewayBitConverter.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Trans/ThingsGatewayBitConverter.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Trans/ThingsGatewayBitConverterExtension.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Trans/ThingsGatewayBitConverterExtension.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Trans/ThingsGatewayBitConverterExtension.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Trans/ThingsGatewayBitConverterExtension.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Utils/CRC16Utils.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Utils/CRC16Utils.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Utils/CRC16Utils.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Utils/CRC16Utils.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Utils/DataTransUtil.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Utils/DataTransUtil.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Utils/DataTransUtil.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Utils/DataTransUtil.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Utils/JTokenUtil.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Utils/JTokenUtil.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Utils/JTokenUtil.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Utils/JTokenUtil.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Utils/LocalizerUtil.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Utils/LocalizerUtil.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Utils/LocalizerUtil.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Utils/LocalizerUtil.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Variable/IVariable.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Variable/IVariable.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Variable/IVariable.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Variable/IVariable.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Variable/IVariableSource.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Variable/IVariableSource.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Variable/IVariableSource.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Variable/IVariableSource.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Variable/VariableClass.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Variable/VariableClass.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Variable/VariableClass.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Variable/VariableClass.cs diff --git a/src/Foundation/ThingsGateway.Foundation/Variable/VariableSourceClass.cs b/Gateway/src/Foundation/ThingsGateway.Foundation/Variable/VariableSourceClass.cs similarity index 100% rename from src/Foundation/ThingsGateway.Foundation/Variable/VariableSourceClass.cs rename to Gateway/src/Foundation/ThingsGateway.Foundation/Variable/VariableSourceClass.cs diff --git a/src/FoundationVersion.props b/Gateway/src/FoundationVersion.props similarity index 100% rename from src/FoundationVersion.props rename to Gateway/src/FoundationVersion.props diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Attributes/DynamicMethodAttribute.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Attributes/DynamicMethodAttribute.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Attributes/DynamicMethodAttribute.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Attributes/DynamicMethodAttribute.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Attributes/DynamicPropertyAttribute.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Attributes/DynamicPropertyAttribute.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Attributes/DynamicPropertyAttribute.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Attributes/DynamicPropertyAttribute.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Attributes/EducationPluginAttribute.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Attributes/EducationPluginAttribute.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Attributes/EducationPluginAttribute.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Attributes/EducationPluginAttribute.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Attributes/OnlyWindowsSupportAttribute.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Attributes/OnlyWindowsSupportAttribute.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Attributes/OnlyWindowsSupportAttribute.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Attributes/OnlyWindowsSupportAttribute.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Common/DoTask.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Common/DoTask.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Common/DoTask.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Common/DoTask.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Common/EncodingMapper.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Common/EncodingMapper.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Common/EncodingMapper.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Common/EncodingMapper.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Const/ExportString.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Const/ExportString.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Const/ExportString.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Const/ExportString.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Const/ThingsGatewayCacheConst.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Const/ThingsGatewayCacheConst.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Const/ThingsGatewayCacheConst.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Const/ThingsGatewayCacheConst.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Controller/ConfigInfoController.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Controller/ConfigInfoController.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Controller/ConfigInfoController.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Controller/ConfigInfoController.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Controller/ControlController.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Controller/ControlController.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Controller/ControlController.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Controller/ControlController.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Controller/GatewayExportController.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Controller/GatewayExportController.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Controller/GatewayExportController.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Controller/GatewayExportController.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Controller/RuntimeInfoController.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Controller/RuntimeInfoController.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Controller/RuntimeInfoController.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Controller/RuntimeInfoController.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Entity/BackendLog.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Entity/BackendLog.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Entity/BackendLog.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Entity/BackendLog.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Entity/Channel.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Entity/Channel.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Entity/Channel.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Entity/Channel.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Entity/Device.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Entity/Device.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Entity/Device.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Entity/Device.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Entity/RpcLog.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Entity/RpcLog.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Entity/RpcLog.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Entity/RpcLog.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Entity/Variable.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Entity/Variable.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Entity/Variable.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Entity/Variable.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Enums/AlarmTypeEnum.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Enums/AlarmTypeEnum.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Enums/AlarmTypeEnum.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Enums/AlarmTypeEnum.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Enums/DeviceStatusEnum.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Enums/DeviceStatusEnum.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Enums/DeviceStatusEnum.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Enums/DeviceStatusEnum.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Enums/EventTypeEnum.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Enums/EventTypeEnum.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Enums/EventTypeEnum.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Enums/EventTypeEnum.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Enums/PluginTypeEnum.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Enums/PluginTypeEnum.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Enums/PluginTypeEnum.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Enums/PluginTypeEnum.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Enums/ProtectTypeEnum.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Enums/ProtectTypeEnum.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Enums/ProtectTypeEnum.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Enums/ProtectTypeEnum.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Enums/RedundantTypeEnum.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Enums/RedundantTypeEnum.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Enums/RedundantTypeEnum.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Enums/RedundantTypeEnum.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Enums/ThreadRunReturnTypeEnum.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Enums/ThreadRunReturnTypeEnum.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Enums/ThreadRunReturnTypeEnum.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Enums/ThreadRunReturnTypeEnum.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Extensions/LogExtensions.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Extensions/LogExtensions.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Extensions/LogExtensions.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Extensions/LogExtensions.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Extensions/ResourceExtensions.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Extensions/ResourceExtensions.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Extensions/ResourceExtensions.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Extensions/ResourceExtensions.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Extensions/ServiceCollectionHostedServiceExtensions.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Extensions/ServiceCollectionHostedServiceExtensions.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Extensions/ServiceCollectionHostedServiceExtensions.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Extensions/ServiceCollectionHostedServiceExtensions.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/FodyWeavers.xml b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/FodyWeavers.xml similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/FodyWeavers.xml rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/FodyWeavers.xml diff --git a/src/Gateway/ThingsGateway.Gateway.Application/GlobalData/GlobalData.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/GlobalData/GlobalData.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/GlobalData/GlobalData.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/GlobalData/GlobalData.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/GlobalUsings.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/GlobalUsings.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/GlobalUsings.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/GlobalUsings.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/HostService/AlarmHostedService.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/HostService/AlarmHostedService.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/HostService/AlarmHostedService.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/HostService/AlarmHostedService.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/HostService/Device/BusinessDeviceHostedService.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/HostService/Device/BusinessDeviceHostedService.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/HostService/Device/BusinessDeviceHostedService.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/HostService/Device/BusinessDeviceHostedService.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/HostService/Device/CollectDeviceHostedService.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/HostService/Device/CollectDeviceHostedService.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/HostService/Device/CollectDeviceHostedService.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/HostService/Device/CollectDeviceHostedService.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/HostService/Device/DeviceHostedService.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/HostService/Device/DeviceHostedService.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/HostService/Device/DeviceHostedService.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/HostService/Device/DeviceHostedService.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/HostService/Device/IBusinessDeviceHostedService.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/HostService/Device/IBusinessDeviceHostedService.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/HostService/Device/IBusinessDeviceHostedService.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/HostService/Device/IBusinessDeviceHostedService.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/HostService/Device/ICollectDeviceHostedService.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/HostService/Device/ICollectDeviceHostedService.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/HostService/Device/ICollectDeviceHostedService.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/HostService/Device/ICollectDeviceHostedService.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/HostService/Device/IDeviceHostedService.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/HostService/Device/IDeviceHostedService.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/HostService/Device/IDeviceHostedService.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/HostService/Device/IDeviceHostedService.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/HostService/IAlarmHostedService.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/HostService/IAlarmHostedService.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/HostService/IAlarmHostedService.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/HostService/IAlarmHostedService.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Job/LogJob/LogJob.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Job/LogJob/LogJob.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Job/LogJob/LogJob.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Job/LogJob/LogJob.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Locales/en-US.json b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Locales/en-US.json similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Locales/en-US.json rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Locales/en-US.json diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Locales/zh-CN.json b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Locales/zh-CN.json similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Locales/zh-CN.json rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Locales/zh-CN.json diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Locales/zh-TW.json b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Locales/zh-TW.json similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Locales/zh-TW.json rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Locales/zh-TW.json diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Logging/BackendLogDatabaseLoggingWriter.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Logging/BackendLogDatabaseLoggingWriter.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Logging/BackendLogDatabaseLoggingWriter.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Logging/BackendLogDatabaseLoggingWriter.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Model/AlarmVariable.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Model/AlarmVariable.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Model/AlarmVariable.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Model/AlarmVariable.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Model/CollectDeviceRunTime.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Model/CollectDeviceRunTime.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Model/CollectDeviceRunTime.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Model/CollectDeviceRunTime.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Model/DeviceData.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Model/DeviceData.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Model/DeviceData.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Model/DeviceData.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Model/DeviceRunTime.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Model/DeviceRunTime.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Model/DeviceRunTime.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Model/DeviceRunTime.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Model/DriverMethodInfo.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Model/DriverMethodInfo.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Model/DriverMethodInfo.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Model/DriverMethodInfo.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Model/VariableData.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Model/VariableData.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Model/VariableData.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Model/VariableData.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Model/VariableMethod.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Model/VariableMethod.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Model/VariableMethod.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Model/VariableMethod.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Model/VariableRunTime.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Model/VariableRunTime.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Model/VariableRunTime.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Model/VariableRunTime.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Model/VariableSourceRead.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Model/VariableSourceRead.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Model/VariableSourceRead.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Model/VariableSourceRead.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/BusinessBase.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/BusinessBase.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/BusinessBase.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/BusinessBase.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/BusinessPropertyBase.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/BusinessPropertyBase.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/BusinessPropertyBase.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/BusinessPropertyBase.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/BusinessBaseWithCacheAlarmModel.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/BusinessBaseWithCacheAlarmModel.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/BusinessBaseWithCacheAlarmModel.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/BusinessBaseWithCacheAlarmModel.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/BusinessBaseWithCacheDeviceModel.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/BusinessBaseWithCacheDeviceModel.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/BusinessBaseWithCacheDeviceModel.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/BusinessBaseWithCacheDeviceModel.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/BusinessBaseWithCacheVariableModel.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/BusinessBaseWithCacheVariableModel.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/BusinessBaseWithCacheVariableModel.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/BusinessBaseWithCacheVariableModel.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/BusinessPropertyWithCache.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/BusinessPropertyWithCache.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/BusinessPropertyWithCache.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/BusinessPropertyWithCache.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessBaseWithCacheIntervalAlarmModel.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessBaseWithCacheIntervalAlarmModel.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessBaseWithCacheIntervalAlarmModel.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessBaseWithCacheIntervalAlarmModel.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessBaseWithCacheIntervalDeviceModel.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessBaseWithCacheIntervalDeviceModel.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessBaseWithCacheIntervalDeviceModel.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessBaseWithCacheIntervalDeviceModel.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessBaseWithCacheIntervalScript.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessBaseWithCacheIntervalScript.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessBaseWithCacheIntervalScript.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessBaseWithCacheIntervalScript.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessBaseWithCacheIntervalVariableModel.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessBaseWithCacheIntervalVariableModel.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessBaseWithCacheIntervalVariableModel.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessBaseWithCacheIntervalVariableModel.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessPropertyWithCacheInterval.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessPropertyWithCacheInterval.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessPropertyWithCacheInterval.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessPropertyWithCacheInterval.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessPropertyWithCacheIntervalDBScript.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessPropertyWithCacheIntervalDBScript.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessPropertyWithCacheIntervalDBScript.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessPropertyWithCacheIntervalDBScript.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessPropertyWithCacheIntervalScript.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessPropertyWithCacheIntervalScript.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessPropertyWithCacheIntervalScript.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/Interval/BusinessPropertyWithCacheIntervalScript.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/TopicArray.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/TopicArray.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/TopicArray.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/TopicArray.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/TopicJson.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/TopicJson.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/TopicJson.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/Cache/TopicJson.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/BusinessDatabaseUtil.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/BusinessDatabaseUtil.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/BusinessDatabaseUtil.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/BusinessDatabaseUtil.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/DBHistoryAlarmPageInput.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/DBHistoryAlarmPageInput.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/DBHistoryAlarmPageInput.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/DBHistoryAlarmPageInput.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/DBHistoryValuePageInput.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/DBHistoryValuePageInput.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/DBHistoryValuePageInput.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/DBHistoryValuePageInput.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/IDBHistoryAlarm.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/IDBHistoryAlarm.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/IDBHistoryAlarm.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/IDBHistoryAlarm.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/IDBHistoryAlarmService.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/IDBHistoryAlarmService.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/IDBHistoryAlarmService.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/IDBHistoryAlarmService.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/IDBHistoryValue.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/IDBHistoryValue.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/IDBHistoryValue.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/IDBHistoryValue.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/IDBHistoryValueService.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/IDBHistoryValueService.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/IDBHistoryValueService.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/DB/IDBHistoryValueService.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/IDriverUIBase.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/IDriverUIBase.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/IDriverUIBase.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/IDriverUIBase.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/VariablePropertyBase.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/VariablePropertyBase.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/VariablePropertyBase.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Business/VariablePropertyBase.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/CacheDB/CacheDB.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/CacheDB/CacheDB.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/CacheDB/CacheDB.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/CacheDB/CacheDB.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/CacheDB/CacheDBItem.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/CacheDB/CacheDBItem.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/CacheDB/CacheDBItem.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/CacheDB/CacheDBItem.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/CacheDB/CacheDBOption.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/CacheDB/CacheDBOption.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/CacheDB/CacheDBOption.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/CacheDB/CacheDBOption.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/CacheDB/CacheDBUtil.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/CacheDB/CacheDBUtil.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/CacheDB/CacheDBUtil.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/CacheDB/CacheDBUtil.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/ChannelThread.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/ChannelThread.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/ChannelThread.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/ChannelThread.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Collect/CollectBase.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Collect/CollectBase.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/Collect/CollectBase.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Collect/CollectBase.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Collect/CollectPropertyBase.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Collect/CollectPropertyBase.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/Collect/CollectPropertyBase.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/Collect/CollectPropertyBase.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/DriverBase.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/DriverBase.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/DriverBase.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/DriverBase.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/DriverBaseExtension.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/DriverBaseExtension.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/DriverBaseExtension.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/DriverBaseExtension.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/DriverPropertyBase.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/DriverPropertyBase.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/DriverPropertyBase.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/DriverPropertyBase.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Plugin/DynamicModelExtension.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/DynamicModelExtension.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Plugin/DynamicModelExtension.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Plugin/DynamicModelExtension.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/SeedData/Gateway/seed_gateway_resource.json b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/SeedData/Gateway/seed_gateway_resource.json similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/SeedData/Gateway/seed_gateway_resource.json rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/SeedData/Gateway/seed_gateway_resource.json diff --git a/src/Gateway/ThingsGateway.Gateway.Application/SeedData/Gateway/seed_gateway_resourcebutton.json b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/SeedData/Gateway/seed_gateway_resourcebutton.json similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/SeedData/Gateway/seed_gateway_resourcebutton.json rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/SeedData/Gateway/seed_gateway_resourcebutton.json diff --git a/src/Gateway/ThingsGateway.Gateway.Application/SeedData/SysResourceSeedData.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/SeedData/SysResourceSeedData.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/SeedData/SysResourceSeedData.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/SeedData/SysResourceSeedData.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Channel/ChannelService.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Channel/ChannelService.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Services/Channel/ChannelService.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Channel/ChannelService.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Channel/IChannelService.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Channel/IChannelService.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Services/Channel/IChannelService.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Channel/IChannelService.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Device/DeviceService.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Device/DeviceService.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Services/Device/DeviceService.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Device/DeviceService.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Device/Dto/DeviceInput.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Device/Dto/DeviceInput.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Services/Device/Dto/DeviceInput.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Device/Dto/DeviceInput.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Device/IDeviceService.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Device/IDeviceService.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Services/Device/IDeviceService.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Device/IDeviceService.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayExport/GatewayExportService.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayExport/GatewayExportService.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayExport/GatewayExportService.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayExport/GatewayExportService.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayExport/IGatewayExportService.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayExport/IGatewayExportService.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayExport/IGatewayExportService.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayExport/IGatewayExportService.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/BackendLogService.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/BackendLogService.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/BackendLogService.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/BackendLogService.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/Dto/LogInput.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/Dto/LogInput.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/Dto/LogInput.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/Dto/LogInput.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/Dto/LogOutput.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/Dto/LogOutput.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/Dto/LogOutput.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/Dto/LogOutput.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/IBackendLogService.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/IBackendLogService.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/IBackendLogService.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/IBackendLogService.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/IRpcLogService.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/IRpcLogService.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/IRpcLogService.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/IRpcLogService.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/RpcLogService.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/RpcLogService.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/RpcLogService.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/GatewayLogs/RpcLogService.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/Dto/InternalTableColumn.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/Dto/InternalTableColumn.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/Dto/InternalTableColumn.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/Dto/InternalTableColumn.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/Dto/PluginInput.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/Dto/PluginInput.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/Dto/PluginInput.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/Dto/PluginInput.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/Dto/PluginOutput.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/Dto/PluginOutput.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/Dto/PluginOutput.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/Dto/PluginOutput.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/IPluginService.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/IPluginService.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/IPluginService.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/IPluginService.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/PluginService.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/PluginService.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/PluginService.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/PluginService.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/PluginServiceUtil.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/PluginServiceUtil.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/PluginServiceUtil.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Plugin/PluginServiceUtil.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Rpc/IRpcService.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Rpc/IRpcService.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Services/Rpc/IRpcService.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Rpc/IRpcService.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Rpc/RpcService.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Rpc/RpcService.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Services/Rpc/RpcService.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Rpc/RpcService.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Variable/Dto/VariableInput.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Variable/Dto/VariableInput.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Services/Variable/Dto/VariableInput.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Variable/Dto/VariableInput.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Variable/IVariableService.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Variable/IVariableService.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Services/Variable/IVariableService.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Variable/IVariableService.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Variable/VariableService.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Variable/VariableService.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Services/Variable/VariableService.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Services/Variable/VariableService.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Startup.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/Startup.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/Startup.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/Startup.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Application/ThingsGateway.Gateway.Application.csproj b/Gateway/src/Gateway/ThingsGateway.Gateway.Application/ThingsGateway.Gateway.Application.csproj similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Application/ThingsGateway.Gateway.Application.csproj rename to Gateway/src/Gateway/ThingsGateway.Gateway.Application/ThingsGateway.Gateway.Application.csproj diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Components/QuickActions.razor b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Components/QuickActions.razor similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Components/QuickActions.razor rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Components/QuickActions.razor diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Components/QuickActions.razor.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Components/QuickActions.razor.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Components/QuickActions.razor.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Components/QuickActions.razor.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Components/QuickActions.razor.css b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Components/QuickActions.razor.css similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Components/QuickActions.razor.css rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Components/QuickActions.razor.css diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Components/QuickActions.razor.js b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Components/QuickActions.razor.js similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Components/QuickActions.razor.js rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Components/QuickActions.razor.js diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Components/ThingsGatewayModuleComponentBase.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Components/ThingsGatewayModuleComponentBase.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Components/ThingsGatewayModuleComponentBase.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Components/ThingsGatewayModuleComponentBase.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Locales/en-US.json b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Locales/en-US.json similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Locales/en-US.json rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Locales/en-US.json diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Locales/zh-CN.json b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Locales/zh-CN.json similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Locales/zh-CN.json rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Locales/zh-CN.json diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Locales/zh-TW.json b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Locales/zh-TW.json similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Locales/zh-TW.json rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Locales/zh-TW.json diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Channel/ChannelEditComponent.razor b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Channel/ChannelEditComponent.razor similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Channel/ChannelEditComponent.razor rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Channel/ChannelEditComponent.razor diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Channel/ChannelEditComponent.razor.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Channel/ChannelEditComponent.razor.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Channel/ChannelEditComponent.razor.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Channel/ChannelEditComponent.razor.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Channel/ChannelEditComponent.razor.css b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Channel/ChannelEditComponent.razor.css similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Channel/ChannelEditComponent.razor.css rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Channel/ChannelEditComponent.razor.css diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Channel/ChannelPage.razor b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Channel/ChannelPage.razor similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Channel/ChannelPage.razor rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Channel/ChannelPage.razor diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Channel/ChannelPage.razor.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Channel/ChannelPage.razor.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Channel/ChannelPage.razor.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Channel/ChannelPage.razor.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/BusinessDevicePage.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/BusinessDevicePage.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/BusinessDevicePage.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/BusinessDevicePage.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/BusinessPropertyWithCacheIntervalScriptRazor.razor b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/BusinessPropertyWithCacheIntervalScriptRazor.razor similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/BusinessPropertyWithCacheIntervalScriptRazor.razor rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/BusinessPropertyWithCacheIntervalScriptRazor.razor diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/BusinessPropertyWithCacheIntervalScriptRazor.razor.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/BusinessPropertyWithCacheIntervalScriptRazor.razor.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/BusinessPropertyWithCacheIntervalScriptRazor.razor.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/BusinessPropertyWithCacheIntervalScriptRazor.razor.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/CollectDevicePage.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/CollectDevicePage.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/CollectDevicePage.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/CollectDevicePage.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/DeviceEditComponent.razor b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/DeviceEditComponent.razor similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/DeviceEditComponent.razor rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/DeviceEditComponent.razor diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/DeviceEditComponent.razor.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/DeviceEditComponent.razor.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/DeviceEditComponent.razor.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/DeviceEditComponent.razor.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/DeviceEditComponent.razor.css b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/DeviceEditComponent.razor.css similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/DeviceEditComponent.razor.css rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/DeviceEditComponent.razor.css diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/DevicePage.razor b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/DevicePage.razor similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/DevicePage.razor rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/DevicePage.razor diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/DevicePage.razor.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/DevicePage.razor.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/DevicePage.razor.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/DevicePage.razor.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/ScriptCheck.razor b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/ScriptCheck.razor similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/ScriptCheck.razor rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/ScriptCheck.razor diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/ScriptCheck.razor.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/ScriptCheck.razor.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/ScriptCheck.razor.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Device/ScriptCheck.razor.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/DriverDebugPage.razor b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/DriverDebugPage.razor similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/DriverDebugPage.razor rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/DriverDebugPage.razor diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/DriverDebugPage.razor.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/DriverDebugPage.razor.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/DriverDebugPage.razor.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/DriverDebugPage.razor.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Plugin/PluginPage.razor b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Plugin/PluginPage.razor similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Plugin/PluginPage.razor rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Plugin/PluginPage.razor diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Plugin/PluginPage.razor.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Plugin/PluginPage.razor.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Plugin/PluginPage.razor.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Plugin/PluginPage.razor.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Plugin/SavePlugin.razor b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Plugin/SavePlugin.razor similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Plugin/SavePlugin.razor rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Plugin/SavePlugin.razor diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Plugin/SavePlugin.razor.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Plugin/SavePlugin.razor.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Plugin/SavePlugin.razor.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Plugin/SavePlugin.razor.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Variable/VariableEditComponent.razor b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Variable/VariableEditComponent.razor similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Variable/VariableEditComponent.razor rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Variable/VariableEditComponent.razor diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Variable/VariableEditComponent.razor.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Variable/VariableEditComponent.razor.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Variable/VariableEditComponent.razor.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Variable/VariableEditComponent.razor.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Variable/VariableEditComponent.razor.css b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Variable/VariableEditComponent.razor.css similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Variable/VariableEditComponent.razor.css rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Variable/VariableEditComponent.razor.css diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Variable/VariablePage.razor b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Variable/VariablePage.razor similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Variable/VariablePage.razor rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Variable/VariablePage.razor diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Variable/VariablePage.razor.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Variable/VariablePage.razor.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Variable/VariablePage.razor.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Config/Variable/VariablePage.razor.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus.razor b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus.razor similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus.razor rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus.razor diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus.razor.Parameter.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus.razor.Parameter.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus.razor.Parameter.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus.razor.Parameter.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus.razor.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus.razor.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus.razor.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus.razor.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus.razor.css b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus.razor.css similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus.razor.css rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus.razor.css diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus1.razor b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus1.razor similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus1.razor rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus1.razor diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus1.razor.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus1.razor.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus1.razor.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus1.razor.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus1.razor.css b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus1.razor.css similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus1.razor.css rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus1.razor.css diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus2.razor b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus2.razor similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus2.razor rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus2.razor diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus2.razor.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus2.razor.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus2.razor.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus2.razor.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus2.razor.css b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus2.razor.css similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus2.razor.css rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus2.razor.css diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus3.razor b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus3.razor similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus3.razor rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus3.razor diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus3.razor.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus3.razor.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus3.razor.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus3.razor.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus3.razor.css b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus3.razor.css similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus3.razor.css rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatus3.razor.css diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatusPage.razor b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatusPage.razor similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatusPage.razor rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatusPage.razor diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatusPage.razor.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatusPage.razor.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatusPage.razor.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatusPage.razor.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatusPage.razor.css b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatusPage.razor.css similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatusPage.razor.css rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/DeviceStatus/DeviceStatusPage.razor.css diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/RealAlarmPage.razor b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/RealAlarmPage.razor similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/RealAlarmPage.razor rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/RealAlarmPage.razor diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/RealAlarmPage.razor.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/RealAlarmPage.razor.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/RealAlarmPage.razor.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/RealAlarmPage.razor.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/VariableRuntimePage.razor b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/VariableRuntimePage.razor similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/VariableRuntimePage.razor rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/VariableRuntimePage.razor diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/VariableRuntimePage.razor.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/VariableRuntimePage.razor.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/VariableRuntimePage.razor.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/Runtime/VariableRuntimePage.razor.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/_Log/BackendLogPage.razor b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/_Log/BackendLogPage.razor similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/_Log/BackendLogPage.razor rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/_Log/BackendLogPage.razor diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/_Log/BackendLogPage.razor.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/_Log/BackendLogPage.razor.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/_Log/BackendLogPage.razor.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/_Log/BackendLogPage.razor.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/_Log/RpcLogPage.razor b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/_Log/RpcLogPage.razor similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/_Log/RpcLogPage.razor rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/_Log/RpcLogPage.razor diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Pages/_Log/RpcLogPage.razor.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/_Log/RpcLogPage.razor.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Pages/_Log/RpcLogPage.razor.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Pages/_Log/RpcLogPage.razor.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/Startup.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Startup.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/Startup.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/Startup.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/TcpServicePage/TcpServicePage.razor b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/TcpServicePage/TcpServicePage.razor similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/TcpServicePage/TcpServicePage.razor rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/TcpServicePage/TcpServicePage.razor diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/TcpServicePage/TcpServicePage.razor.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/TcpServicePage/TcpServicePage.razor.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/TcpServicePage/TcpServicePage.razor.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/TcpServicePage/TcpServicePage.razor.cs diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/ThingsGateway.Gateway.Razor.csproj b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/ThingsGateway.Gateway.Razor.csproj similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/ThingsGateway.Gateway.Razor.csproj rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/ThingsGateway.Gateway.Razor.csproj diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/_Imports.razor b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/_Imports.razor similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/_Imports.razor rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/_Imports.razor diff --git a/src/Gateway/ThingsGateway.Gateway.Razor/_Imports.razor.cs b/Gateway/src/Gateway/ThingsGateway.Gateway.Razor/_Imports.razor.cs similarity index 100% rename from src/Gateway/ThingsGateway.Gateway.Razor/_Imports.razor.cs rename to Gateway/src/Gateway/ThingsGateway.Gateway.Razor/_Imports.razor.cs diff --git a/src/PackNuget.props b/Gateway/src/PackNuget.props similarity index 100% rename from src/PackNuget.props rename to Gateway/src/PackNuget.props diff --git a/src/PluginBase.sln b/Gateway/src/PluginBase.sln similarity index 100% rename from src/PluginBase.sln rename to Gateway/src/PluginBase.sln diff --git a/src/ThingsGateway.Photino/Photino/PhotinoBlazorApp.cs b/Gateway/src/ThingsGateway.Photino/Photino/PhotinoBlazorApp.cs similarity index 100% rename from src/ThingsGateway.Photino/Photino/PhotinoBlazorApp.cs rename to Gateway/src/ThingsGateway.Photino/Photino/PhotinoBlazorApp.cs diff --git a/src/ThingsGateway.Photino/Photino/PhotinoBlazorAppBuilder.cs b/Gateway/src/ThingsGateway.Photino/Photino/PhotinoBlazorAppBuilder.cs similarity index 100% rename from src/ThingsGateway.Photino/Photino/PhotinoBlazorAppBuilder.cs rename to Gateway/src/ThingsGateway.Photino/Photino/PhotinoBlazorAppBuilder.cs diff --git a/src/ThingsGateway.Photino/Photino/PhotinoBlazorAppConfiguration.cs b/Gateway/src/ThingsGateway.Photino/Photino/PhotinoBlazorAppConfiguration.cs similarity index 100% rename from src/ThingsGateway.Photino/Photino/PhotinoBlazorAppConfiguration.cs rename to Gateway/src/ThingsGateway.Photino/Photino/PhotinoBlazorAppConfiguration.cs diff --git a/src/ThingsGateway.Photino/Photino/PhotinoDispatcher.cs b/Gateway/src/ThingsGateway.Photino/Photino/PhotinoDispatcher.cs similarity index 100% rename from src/ThingsGateway.Photino/Photino/PhotinoDispatcher.cs rename to Gateway/src/ThingsGateway.Photino/Photino/PhotinoDispatcher.cs diff --git a/src/ThingsGateway.Photino/Photino/PhotinoHttpHandler.cs b/Gateway/src/ThingsGateway.Photino/Photino/PhotinoHttpHandler.cs similarity index 100% rename from src/ThingsGateway.Photino/Photino/PhotinoHttpHandler.cs rename to Gateway/src/ThingsGateway.Photino/Photino/PhotinoHttpHandler.cs diff --git a/src/ThingsGateway.Photino/Photino/PhotinoSyncrhronizationContext.cs b/Gateway/src/ThingsGateway.Photino/Photino/PhotinoSyncrhronizationContext.cs similarity index 100% rename from src/ThingsGateway.Photino/Photino/PhotinoSyncrhronizationContext.cs rename to Gateway/src/ThingsGateway.Photino/Photino/PhotinoSyncrhronizationContext.cs diff --git a/src/ThingsGateway.Photino/Photino/PhotinoWebViewManager.cs b/Gateway/src/ThingsGateway.Photino/Photino/PhotinoWebViewManager.cs similarity index 100% rename from src/ThingsGateway.Photino/Photino/PhotinoWebViewManager.cs rename to Gateway/src/ThingsGateway.Photino/Photino/PhotinoWebViewManager.cs diff --git a/src/ThingsGateway.Photino/Photino/PhotinoWindowRootComponents.cs b/Gateway/src/ThingsGateway.Photino/Photino/PhotinoWindowRootComponents.cs similarity index 100% rename from src/ThingsGateway.Photino/Photino/PhotinoWindowRootComponents.cs rename to Gateway/src/ThingsGateway.Photino/Photino/PhotinoWindowRootComponents.cs diff --git a/src/ThingsGateway.Photino/Photino/ServiceCollectionExtensions.cs b/Gateway/src/ThingsGateway.Photino/Photino/ServiceCollectionExtensions.cs similarity index 100% rename from src/ThingsGateway.Photino/Photino/ServiceCollectionExtensions.cs rename to Gateway/src/ThingsGateway.Photino/Photino/ServiceCollectionExtensions.cs diff --git a/src/ThingsGateway.Photino/Photino/Utils/SynchronousTaskScheduler.cs b/Gateway/src/ThingsGateway.Photino/Photino/Utils/SynchronousTaskScheduler.cs similarity index 100% rename from src/ThingsGateway.Photino/Photino/Utils/SynchronousTaskScheduler.cs rename to Gateway/src/ThingsGateway.Photino/Photino/Utils/SynchronousTaskScheduler.cs diff --git a/src/ThingsGateway.Photino/Program.cs b/Gateway/src/ThingsGateway.Photino/Program.cs similarity index 100% rename from src/ThingsGateway.Photino/Program.cs rename to Gateway/src/ThingsGateway.Photino/Program.cs diff --git a/src/ThingsGateway.Photino/Routes.razor b/Gateway/src/ThingsGateway.Photino/Routes.razor similarity index 100% rename from src/ThingsGateway.Photino/Routes.razor rename to Gateway/src/ThingsGateway.Photino/Routes.razor diff --git a/src/ThingsGateway.Photino/Services/BlazorHybridAuthenticationStateProvider.cs b/Gateway/src/ThingsGateway.Photino/Services/BlazorHybridAuthenticationStateProvider.cs similarity index 100% rename from src/ThingsGateway.Photino/Services/BlazorHybridAuthenticationStateProvider.cs rename to Gateway/src/ThingsGateway.Photino/Services/BlazorHybridAuthenticationStateProvider.cs diff --git a/src/ThingsGateway.Photino/Services/BlazorHybridAuthorizationHandler.cs b/Gateway/src/ThingsGateway.Photino/Services/BlazorHybridAuthorizationHandler.cs similarity index 100% rename from src/ThingsGateway.Photino/Services/BlazorHybridAuthorizationHandler.cs rename to Gateway/src/ThingsGateway.Photino/Services/BlazorHybridAuthorizationHandler.cs diff --git a/src/ThingsGateway.Photino/Services/HybridAppService.cs b/Gateway/src/ThingsGateway.Photino/Services/HybridAppService.cs similarity index 100% rename from src/ThingsGateway.Photino/Services/HybridAppService.cs rename to Gateway/src/ThingsGateway.Photino/Services/HybridAppService.cs diff --git a/src/ThingsGateway.Photino/Services/HybridAuthRazorService.cs b/Gateway/src/ThingsGateway.Photino/Services/HybridAuthRazorService.cs similarity index 100% rename from src/ThingsGateway.Photino/Services/HybridAuthRazorService.cs rename to Gateway/src/ThingsGateway.Photino/Services/HybridAuthRazorService.cs diff --git a/src/ThingsGateway.Photino/Services/HybridGatewayExportService.cs b/Gateway/src/ThingsGateway.Photino/Services/HybridGatewayExportService.cs similarity index 100% rename from src/ThingsGateway.Photino/Services/HybridGatewayExportService.cs rename to Gateway/src/ThingsGateway.Photino/Services/HybridGatewayExportService.cs diff --git a/src/ThingsGateway.Photino/Startup.cs b/Gateway/src/ThingsGateway.Photino/Startup.cs similarity index 100% rename from src/ThingsGateway.Photino/Startup.cs rename to Gateway/src/ThingsGateway.Photino/Startup.cs diff --git a/src/ThingsGateway.Photino/ThingsGateway.Photino.csproj b/Gateway/src/ThingsGateway.Photino/ThingsGateway.Photino.csproj similarity index 100% rename from src/ThingsGateway.Photino/ThingsGateway.Photino.csproj rename to Gateway/src/ThingsGateway.Photino/ThingsGateway.Photino.csproj diff --git a/src/ThingsGateway.Photino/favicon.ico b/Gateway/src/ThingsGateway.Photino/favicon.ico similarity index 100% rename from src/ThingsGateway.Photino/favicon.ico rename to Gateway/src/ThingsGateway.Photino/favicon.ico diff --git a/src/ThingsGateway.Photino/wwwroot/index.html b/Gateway/src/ThingsGateway.Photino/wwwroot/index.html similarity index 100% rename from src/ThingsGateway.Photino/wwwroot/index.html rename to Gateway/src/ThingsGateway.Photino/wwwroot/index.html diff --git a/src/ThingsGateway.Server/.config/dotnet-tools.json b/Gateway/src/ThingsGateway.Server/.config/dotnet-tools.json similarity index 100% rename from src/ThingsGateway.Server/.config/dotnet-tools.json rename to Gateway/src/ThingsGateway.Server/.config/dotnet-tools.json diff --git a/src/ThingsGateway.Server/Configuration/App.json b/Gateway/src/ThingsGateway.Server/Configuration/App.json similarity index 100% rename from src/ThingsGateway.Server/Configuration/App.json rename to Gateway/src/ThingsGateway.Server/Configuration/App.json diff --git a/src/ThingsGateway.Server/Configuration/BootstrapBlazor.json b/Gateway/src/ThingsGateway.Server/Configuration/BootstrapBlazor.json similarity index 100% rename from src/ThingsGateway.Server/Configuration/BootstrapBlazor.json rename to Gateway/src/ThingsGateway.Server/Configuration/BootstrapBlazor.json diff --git a/src/ThingsGateway.Server/Configuration/ChannelThread.json b/Gateway/src/ThingsGateway.Server/Configuration/ChannelThread.json similarity index 100% rename from src/ThingsGateway.Server/Configuration/ChannelThread.json rename to Gateway/src/ThingsGateway.Server/Configuration/ChannelThread.json diff --git a/src/ThingsGateway.Server/Configuration/Database.Development.json b/Gateway/src/ThingsGateway.Server/Configuration/Database.Development.json similarity index 100% rename from src/ThingsGateway.Server/Configuration/Database.Development.json rename to Gateway/src/ThingsGateway.Server/Configuration/Database.Development.json diff --git a/src/ThingsGateway.Server/Configuration/Database.json b/Gateway/src/ThingsGateway.Server/Configuration/Database.json similarity index 100% rename from src/ThingsGateway.Server/Configuration/Database.json rename to Gateway/src/ThingsGateway.Server/Configuration/Database.json diff --git a/src/ThingsGateway.Server/Configuration/Email.json b/Gateway/src/ThingsGateway.Server/Configuration/Email.json similarity index 100% rename from src/ThingsGateway.Server/Configuration/Email.json rename to Gateway/src/ThingsGateway.Server/Configuration/Email.json diff --git a/src/ThingsGateway.Server/Configuration/HardwareInfo.json b/Gateway/src/ThingsGateway.Server/Configuration/HardwareInfo.json similarity index 100% rename from src/ThingsGateway.Server/Configuration/HardwareInfo.json rename to Gateway/src/ThingsGateway.Server/Configuration/HardwareInfo.json diff --git a/src/ThingsGateway.Server/Configuration/JWT.json b/Gateway/src/ThingsGateway.Server/Configuration/JWT.json similarity index 100% rename from src/ThingsGateway.Server/Configuration/JWT.json rename to Gateway/src/ThingsGateway.Server/Configuration/JWT.json diff --git a/src/ThingsGateway.Server/Configuration/LogJob.json b/Gateway/src/ThingsGateway.Server/Configuration/LogJob.json similarity index 100% rename from src/ThingsGateway.Server/Configuration/LogJob.json rename to Gateway/src/ThingsGateway.Server/Configuration/LogJob.json diff --git a/src/ThingsGateway.Server/Configuration/Logging.json b/Gateway/src/ThingsGateway.Server/Configuration/Logging.json similarity index 100% rename from src/ThingsGateway.Server/Configuration/Logging.json rename to Gateway/src/ThingsGateway.Server/Configuration/Logging.json diff --git a/src/ThingsGateway.Server/Configuration/Swagger.json b/Gateway/src/ThingsGateway.Server/Configuration/Swagger.json similarity index 100% rename from src/ThingsGateway.Server/Configuration/Swagger.json rename to Gateway/src/ThingsGateway.Server/Configuration/Swagger.json diff --git a/src/ThingsGateway.Server/Configuration/UpgradeServer.json b/Gateway/src/ThingsGateway.Server/Configuration/UpgradeServer.json similarity index 100% rename from src/ThingsGateway.Server/Configuration/UpgradeServer.json rename to Gateway/src/ThingsGateway.Server/Configuration/UpgradeServer.json diff --git a/src/ThingsGateway.Server/Configuration/Website.json b/Gateway/src/ThingsGateway.Server/Configuration/Website.json similarity index 100% rename from src/ThingsGateway.Server/Configuration/Website.json rename to Gateway/src/ThingsGateway.Server/Configuration/Website.json diff --git a/src/ThingsGateway.Server/DockerPush.ps1 b/Gateway/src/ThingsGateway.Server/DockerPush.ps1 similarity index 100% rename from src/ThingsGateway.Server/DockerPush.ps1 rename to Gateway/src/ThingsGateway.Server/DockerPush.ps1 diff --git a/src/ThingsGateway.Server/DockerPush_arm64.ps1 b/Gateway/src/ThingsGateway.Server/DockerPush_arm64.ps1 similarity index 100% rename from src/ThingsGateway.Server/DockerPush_arm64.ps1 rename to Gateway/src/ThingsGateway.Server/DockerPush_arm64.ps1 diff --git a/src/ThingsGateway.Server/Dockerfile b/Gateway/src/ThingsGateway.Server/Dockerfile similarity index 100% rename from src/ThingsGateway.Server/Dockerfile rename to Gateway/src/ThingsGateway.Server/Dockerfile diff --git a/src/ThingsGateway.Server/Dockerfile_arm64 b/Gateway/src/ThingsGateway.Server/Dockerfile_arm64 similarity index 100% rename from src/ThingsGateway.Server/Dockerfile_arm64 rename to Gateway/src/ThingsGateway.Server/Dockerfile_arm64 diff --git a/src/ThingsGateway.Server/Index/GatewayIndex.razor b/Gateway/src/ThingsGateway.Server/Index/GatewayIndex.razor similarity index 100% rename from src/ThingsGateway.Server/Index/GatewayIndex.razor rename to Gateway/src/ThingsGateway.Server/Index/GatewayIndex.razor diff --git a/src/ThingsGateway.Server/Index/GatewayIndex.razor.cs b/Gateway/src/ThingsGateway.Server/Index/GatewayIndex.razor.cs similarity index 100% rename from src/ThingsGateway.Server/Index/GatewayIndex.razor.cs rename to Gateway/src/ThingsGateway.Server/Index/GatewayIndex.razor.cs diff --git a/src/ThingsGateway.Server/Index/GatewayIndexComponent.razor b/Gateway/src/ThingsGateway.Server/Index/GatewayIndexComponent.razor similarity index 100% rename from src/ThingsGateway.Server/Index/GatewayIndexComponent.razor rename to Gateway/src/ThingsGateway.Server/Index/GatewayIndexComponent.razor diff --git a/src/ThingsGateway.Server/Index/GatewayIndexComponent.razor.cs b/Gateway/src/ThingsGateway.Server/Index/GatewayIndexComponent.razor.cs similarity index 100% rename from src/ThingsGateway.Server/Index/GatewayIndexComponent.razor.cs rename to Gateway/src/ThingsGateway.Server/Index/GatewayIndexComponent.razor.cs diff --git a/src/ThingsGateway.Server/Layout/AccessDenied.razor b/Gateway/src/ThingsGateway.Server/Layout/AccessDenied.razor similarity index 100% rename from src/ThingsGateway.Server/Layout/AccessDenied.razor rename to Gateway/src/ThingsGateway.Server/Layout/AccessDenied.razor diff --git a/src/ThingsGateway.Server/Layout/AccessDenied.razor.cs b/Gateway/src/ThingsGateway.Server/Layout/AccessDenied.razor.cs similarity index 100% rename from src/ThingsGateway.Server/Layout/AccessDenied.razor.cs rename to Gateway/src/ThingsGateway.Server/Layout/AccessDenied.razor.cs diff --git a/src/ThingsGateway.Server/Layout/BlazorApp.razor b/Gateway/src/ThingsGateway.Server/Layout/BlazorApp.razor similarity index 100% rename from src/ThingsGateway.Server/Layout/BlazorApp.razor rename to Gateway/src/ThingsGateway.Server/Layout/BlazorApp.razor diff --git a/src/ThingsGateway.Server/Layout/Login.razor b/Gateway/src/ThingsGateway.Server/Layout/Login.razor similarity index 100% rename from src/ThingsGateway.Server/Layout/Login.razor rename to Gateway/src/ThingsGateway.Server/Layout/Login.razor diff --git a/src/ThingsGateway.Server/Layout/Login.razor.cs b/Gateway/src/ThingsGateway.Server/Layout/Login.razor.cs similarity index 100% rename from src/ThingsGateway.Server/Layout/Login.razor.cs rename to Gateway/src/ThingsGateway.Server/Layout/Login.razor.cs diff --git a/src/ThingsGateway.Server/Layout/Login.razor.css b/Gateway/src/ThingsGateway.Server/Layout/Login.razor.css similarity index 100% rename from src/ThingsGateway.Server/Layout/Login.razor.css rename to Gateway/src/ThingsGateway.Server/Layout/Login.razor.css diff --git a/src/ThingsGateway.Server/Layout/MainLayout.razor b/Gateway/src/ThingsGateway.Server/Layout/MainLayout.razor similarity index 100% rename from src/ThingsGateway.Server/Layout/MainLayout.razor rename to Gateway/src/ThingsGateway.Server/Layout/MainLayout.razor diff --git a/src/ThingsGateway.Server/Layout/MainLayout.razor.cs b/Gateway/src/ThingsGateway.Server/Layout/MainLayout.razor.cs similarity index 100% rename from src/ThingsGateway.Server/Layout/MainLayout.razor.cs rename to Gateway/src/ThingsGateway.Server/Layout/MainLayout.razor.cs diff --git a/src/ThingsGateway.Server/Layout/MainLayout.razor.css b/Gateway/src/ThingsGateway.Server/Layout/MainLayout.razor.css similarity index 100% rename from src/ThingsGateway.Server/Layout/MainLayout.razor.css rename to Gateway/src/ThingsGateway.Server/Layout/MainLayout.razor.css diff --git a/src/ThingsGateway.Server/Layout/NotFound404.razor b/Gateway/src/ThingsGateway.Server/Layout/NotFound404.razor similarity index 100% rename from src/ThingsGateway.Server/Layout/NotFound404.razor rename to Gateway/src/ThingsGateway.Server/Layout/NotFound404.razor diff --git a/src/ThingsGateway.Server/Layout/NotFound404.razor.cs b/Gateway/src/ThingsGateway.Server/Layout/NotFound404.razor.cs similarity index 100% rename from src/ThingsGateway.Server/Layout/NotFound404.razor.cs rename to Gateway/src/ThingsGateway.Server/Layout/NotFound404.razor.cs diff --git a/src/ThingsGateway.Server/Layout/Routes.razor b/Gateway/src/ThingsGateway.Server/Layout/Routes.razor similarity index 100% rename from src/ThingsGateway.Server/Layout/Routes.razor rename to Gateway/src/ThingsGateway.Server/Layout/Routes.razor diff --git a/src/ThingsGateway.Server/Locales/en-US.json b/Gateway/src/ThingsGateway.Server/Locales/en-US.json similarity index 100% rename from src/ThingsGateway.Server/Locales/en-US.json rename to Gateway/src/ThingsGateway.Server/Locales/en-US.json diff --git a/src/ThingsGateway.Server/Locales/zh-CN.json b/Gateway/src/ThingsGateway.Server/Locales/zh-CN.json similarity index 100% rename from src/ThingsGateway.Server/Locales/zh-CN.json rename to Gateway/src/ThingsGateway.Server/Locales/zh-CN.json diff --git a/src/ThingsGateway.Server/Locales/zh-TW.json b/Gateway/src/ThingsGateway.Server/Locales/zh-TW.json similarity index 100% rename from src/ThingsGateway.Server/Locales/zh-TW.json rename to Gateway/src/ThingsGateway.Server/Locales/zh-TW.json diff --git a/src/ThingsGateway.Server/Pages/_Host.cshtml b/Gateway/src/ThingsGateway.Server/Pages/_Host.cshtml similarity index 100% rename from src/ThingsGateway.Server/Pages/_Host.cshtml rename to Gateway/src/ThingsGateway.Server/Pages/_Host.cshtml diff --git a/src/ThingsGateway.Server/Program/Program.cs b/Gateway/src/ThingsGateway.Server/Program/Program.cs similarity index 100% rename from src/ThingsGateway.Server/Program/Program.cs rename to Gateway/src/ThingsGateway.Server/Program/Program.cs diff --git a/src/ThingsGateway.Server/Program/SingleFilePublish.cs b/Gateway/src/ThingsGateway.Server/Program/SingleFilePublish.cs similarity index 100% rename from src/ThingsGateway.Server/Program/SingleFilePublish.cs rename to Gateway/src/ThingsGateway.Server/Program/SingleFilePublish.cs diff --git a/src/ThingsGateway.Server/Program/Startup.cs b/Gateway/src/ThingsGateway.Server/Program/Startup.cs similarity index 100% rename from src/ThingsGateway.Server/Program/Startup.cs rename to Gateway/src/ThingsGateway.Server/Program/Startup.cs diff --git a/src/ThingsGateway.Server/Program/TestCollectPlugin.cs b/Gateway/src/ThingsGateway.Server/Program/TestCollectPlugin.cs similarity index 100% rename from src/ThingsGateway.Server/Program/TestCollectPlugin.cs rename to Gateway/src/ThingsGateway.Server/Program/TestCollectPlugin.cs diff --git a/src/ThingsGateway.Server/Properties/launchSettings.json b/Gateway/src/ThingsGateway.Server/Properties/launchSettings.json similarity index 100% rename from src/ThingsGateway.Server/Properties/launchSettings.json rename to Gateway/src/ThingsGateway.Server/Properties/launchSettings.json diff --git a/src/ThingsGateway.Server/Service/SugarConfigAopService.cs b/Gateway/src/ThingsGateway.Server/Service/SugarConfigAopService.cs similarity index 100% rename from src/ThingsGateway.Server/Service/SugarConfigAopService.cs rename to Gateway/src/ThingsGateway.Server/Service/SugarConfigAopService.cs diff --git a/src/ThingsGateway.Server/ThingsGateway.Server.csproj b/Gateway/src/ThingsGateway.Server/ThingsGateway.Server.csproj similarity index 100% rename from src/ThingsGateway.Server/ThingsGateway.Server.csproj rename to Gateway/src/ThingsGateway.Server/ThingsGateway.Server.csproj diff --git a/src/ThingsGateway.Server/WindowsService b/Gateway/src/ThingsGateway.Server/WindowsService similarity index 100% rename from src/ThingsGateway.Server/WindowsService rename to Gateway/src/ThingsGateway.Server/WindowsService diff --git a/src/ThingsGateway.Server/WindowsServiceCreate.bat b/Gateway/src/ThingsGateway.Server/WindowsServiceCreate.bat similarity index 100% rename from src/ThingsGateway.Server/WindowsServiceCreate.bat rename to Gateway/src/ThingsGateway.Server/WindowsServiceCreate.bat diff --git a/src/ThingsGateway.Server/WindowsServiceDelete.bat b/Gateway/src/ThingsGateway.Server/WindowsServiceDelete.bat similarity index 100% rename from src/ThingsGateway.Server/WindowsServiceDelete.bat rename to Gateway/src/ThingsGateway.Server/WindowsServiceDelete.bat diff --git a/src/ThingsGateway.Server/appsettings.Development.json b/Gateway/src/ThingsGateway.Server/appsettings.Development.json similarity index 100% rename from src/ThingsGateway.Server/appsettings.Development.json rename to Gateway/src/ThingsGateway.Server/appsettings.Development.json diff --git a/src/ThingsGateway.Server/appsettings.json b/Gateway/src/ThingsGateway.Server/appsettings.json similarity index 100% rename from src/ThingsGateway.Server/appsettings.json rename to Gateway/src/ThingsGateway.Server/appsettings.json diff --git a/src/ThingsGateway.Server/favicon.ico b/Gateway/src/ThingsGateway.Server/favicon.ico similarity index 100% rename from src/ThingsGateway.Server/favicon.ico rename to Gateway/src/ThingsGateway.Server/favicon.ico diff --git a/src/ThingsGateway.Server/pm2.json b/Gateway/src/ThingsGateway.Server/pm2.json similarity index 100% rename from src/ThingsGateway.Server/pm2.json rename to Gateway/src/ThingsGateway.Server/pm2.json diff --git a/src/ThingsGateway.Server/targets/Admin.targets b/Gateway/src/ThingsGateway.Server/targets/Admin.targets similarity index 100% rename from src/ThingsGateway.Server/targets/Admin.targets rename to Gateway/src/ThingsGateway.Server/targets/Admin.targets diff --git a/src/ThingsGateway.Server/targets/Custom.targets b/Gateway/src/ThingsGateway.Server/targets/Custom.targets similarity index 100% rename from src/ThingsGateway.Server/targets/Custom.targets rename to Gateway/src/ThingsGateway.Server/targets/Custom.targets diff --git a/src/ThingsGateway.Server/targets/CustomPlugin.targets b/Gateway/src/ThingsGateway.Server/targets/CustomPlugin.targets similarity index 100% rename from src/ThingsGateway.Server/targets/CustomPlugin.targets rename to Gateway/src/ThingsGateway.Server/targets/CustomPlugin.targets diff --git a/src/ThingsGateway.Server/targets/OtherPlugin.targets b/Gateway/src/ThingsGateway.Server/targets/OtherPlugin.targets similarity index 100% rename from src/ThingsGateway.Server/targets/OtherPlugin.targets rename to Gateway/src/ThingsGateway.Server/targets/OtherPlugin.targets diff --git a/src/ThingsGateway.Server/targets/OtherPlugin1.targets b/Gateway/src/ThingsGateway.Server/targets/OtherPlugin1.targets similarity index 100% rename from src/ThingsGateway.Server/targets/OtherPlugin1.targets rename to Gateway/src/ThingsGateway.Server/targets/OtherPlugin1.targets diff --git a/src/ThingsGateway.Server/targets/Plugin.targets b/Gateway/src/ThingsGateway.Server/targets/Plugin.targets similarity index 100% rename from src/ThingsGateway.Server/targets/Plugin.targets rename to Gateway/src/ThingsGateway.Server/targets/Plugin.targets diff --git a/src/ThingsGateway.Server/thingsgateway.service b/Gateway/src/ThingsGateway.Server/thingsgateway.service similarity index 100% rename from src/ThingsGateway.Server/thingsgateway.service rename to Gateway/src/ThingsGateway.Server/thingsgateway.service diff --git a/src/ThingsGateway.Server/wwwroot/favicon.ico b/Gateway/src/ThingsGateway.Server/wwwroot/favicon.ico similarity index 100% rename from src/ThingsGateway.Server/wwwroot/favicon.ico rename to Gateway/src/ThingsGateway.Server/wwwroot/favicon.ico diff --git a/src/ThingsGateway.Server/wwwroot/favicon.png b/Gateway/src/ThingsGateway.Server/wwwroot/favicon.png similarity index 100% rename from src/ThingsGateway.Server/wwwroot/favicon.png rename to Gateway/src/ThingsGateway.Server/wwwroot/favicon.png diff --git a/src/ThingsGateway.Server/wwwroot/manifest.json b/Gateway/src/ThingsGateway.Server/wwwroot/manifest.json similarity index 100% rename from src/ThingsGateway.Server/wwwroot/manifest.json rename to Gateway/src/ThingsGateway.Server/wwwroot/manifest.json diff --git a/src/ThingsGateway.Server/wwwroot/service-worker.js b/Gateway/src/ThingsGateway.Server/wwwroot/service-worker.js similarity index 100% rename from src/ThingsGateway.Server/wwwroot/service-worker.js rename to Gateway/src/ThingsGateway.Server/wwwroot/service-worker.js diff --git a/src/ThingsGateway.Server/wwwroot/service-worker.published.js b/Gateway/src/ThingsGateway.Server/wwwroot/service-worker.published.js similarity index 100% rename from src/ThingsGateway.Server/wwwroot/service-worker.published.js rename to Gateway/src/ThingsGateway.Server/wwwroot/service-worker.published.js diff --git a/src/ThingsGateway.Winform/GlobalUsings.cs b/Gateway/src/ThingsGateway.Winform/GlobalUsings.cs similarity index 100% rename from src/ThingsGateway.Winform/GlobalUsings.cs rename to Gateway/src/ThingsGateway.Winform/GlobalUsings.cs diff --git a/src/ThingsGateway.Winform/MainForm.Designer.cs b/Gateway/src/ThingsGateway.Winform/MainForm.Designer.cs similarity index 100% rename from src/ThingsGateway.Winform/MainForm.Designer.cs rename to Gateway/src/ThingsGateway.Winform/MainForm.Designer.cs diff --git a/src/ThingsGateway.Winform/MainForm.cs b/Gateway/src/ThingsGateway.Winform/MainForm.cs similarity index 100% rename from src/ThingsGateway.Winform/MainForm.cs rename to Gateway/src/ThingsGateway.Winform/MainForm.cs diff --git a/src/ThingsGateway.Winform/MainForm.resx b/Gateway/src/ThingsGateway.Winform/MainForm.resx similarity index 100% rename from src/ThingsGateway.Winform/MainForm.resx rename to Gateway/src/ThingsGateway.Winform/MainForm.resx diff --git a/src/ThingsGateway.Winform/Program.cs b/Gateway/src/ThingsGateway.Winform/Program.cs similarity index 100% rename from src/ThingsGateway.Winform/Program.cs rename to Gateway/src/ThingsGateway.Winform/Program.cs diff --git a/src/ThingsGateway.Winform/Routes.razor b/Gateway/src/ThingsGateway.Winform/Routes.razor similarity index 100% rename from src/ThingsGateway.Winform/Routes.razor rename to Gateway/src/ThingsGateway.Winform/Routes.razor diff --git a/src/ThingsGateway.Winform/ThingsGateway.Winform.csproj b/Gateway/src/ThingsGateway.Winform/ThingsGateway.Winform.csproj similarity index 100% rename from src/ThingsGateway.Winform/ThingsGateway.Winform.csproj rename to Gateway/src/ThingsGateway.Winform/ThingsGateway.Winform.csproj diff --git a/src/ThingsGateway.Winform/favicon.ico b/Gateway/src/ThingsGateway.Winform/favicon.ico similarity index 100% rename from src/ThingsGateway.Winform/favicon.ico rename to Gateway/src/ThingsGateway.Winform/favicon.ico diff --git a/src/ThingsGateway.Winform/wwwroot/index.html b/Gateway/src/ThingsGateway.Winform/wwwroot/index.html similarity index 100% rename from src/ThingsGateway.Winform/wwwroot/index.html rename to Gateway/src/ThingsGateway.Winform/wwwroot/index.html diff --git a/src/ThingsGateway.sln b/Gateway/src/ThingsGateway.sln similarity index 100% rename from src/ThingsGateway.sln rename to Gateway/src/ThingsGateway.sln diff --git a/src/Version.props b/Gateway/src/Version.props similarity index 100% rename from src/Version.props rename to Gateway/src/Version.props