ntminer пре 5 година
родитељ
комит
aaf00d17ba

+ 6 - 0
src/NTMiner.Controllers/ICalcConfigBinaryController`1.cs

@@ -0,0 +1,6 @@
+namespace NTMiner.Controllers {
+    // 为了解除对HttpResponseMessage所在的程序集的引用所以整了个类型参数T1
+    public interface ICalcConfigBinaryController<T1> {
+        T1 CalcConfigs();
+    }
+}

+ 8 - 0
src/NTMiner.Controllers/IServerMessageBinaryController`1.cs

@@ -0,0 +1,8 @@
+using NTMiner.Core.MinerServer;
+
+namespace NTMiner.Controllers {
+    // 为了解除对HttpResponseMessage所在的程序集的引用所以整了个类型参数T1
+    public interface IServerMessageBinaryController<T1> {
+        T1 ServerMessages(ServerMessagesRequest request);
+    }
+}

+ 2 - 0
src/NTMiner.Controllers/NTMiner.Controllers.csproj

@@ -34,12 +34,14 @@
     <Reference Include="System" />
   </ItemGroup>
   <ItemGroup>
+    <Compile Include="ICalcConfigBinaryController`1.cs" />
     <Compile Include="ICaptchaController`1.cs" />
     <Compile Include="IClientDataBinaryController`1.cs" />
     <Compile Include="ICoinSnapshotController.cs" />
     <Compile Include="IGpuNameController.cs" />
     <Compile Include="IMinerClientController.cs" />
     <Compile Include="IReportBinaryController.cs" />
+    <Compile Include="IServerMessageBinaryController`1.cs" />
     <Compile Include="IUserAppSettingController.cs" />
     <Compile Include="IWebApiServerNodeController.cs" />
     <Compile Include="IWsServerNodeController.cs" />

+ 5 - 1
src/WebApiServer/Controllers/CalcConfigController.cs

@@ -11,6 +11,11 @@ namespace NTMiner.Controllers {
         [HttpGet]
         [HttpPost]
         public DataResponse<List<CalcConfigData>> CalcConfigs() {
+            return DoCalcConfigs();
+        }
+        #endregion
+
+        internal static DataResponse<List<CalcConfigData>> DoCalcConfigs() {
             try {
                 var data = WebApiRoot.CalcConfigSet.GetAll();
                 return DataResponse<List<CalcConfigData>>.Ok(data);
@@ -20,7 +25,6 @@ namespace NTMiner.Controllers {
                 return ResponseBase.ServerError<DataResponse<List<CalcConfigData>>>(e.Message);
             }
         }
-        #endregion
 
         #region SaveCalcConfigs
         [Role.Admin]

+ 1 - 21
src/WebApiServer/Controllers/ClientDataBinaryController.cs

@@ -12,27 +12,7 @@ namespace NTMiner.Controllers {
         [Role.User]
         [HttpPost]
         public HttpResponseMessage QueryClients([FromBody]QueryClientsRequest request) {
-            QueryClientsResponse response;
-            if (request == null) {
-                response = ResponseBase.InvalidInput<QueryClientsResponse>("参数错误");
-            }
-            else {
-                request.PagingTrim();
-                try {
-                    var data = WebApiRoot.ClientDataSet.QueryClients(
-                        User,
-                        request,
-                        out int total,
-                        out List<CoinSnapshotData> latestSnapshots,
-                        out int totalOnlineCount,
-                        out int totalMiningCount) ?? new List<ClientData>();
-                    response = QueryClientsResponse.Ok(data, total, latestSnapshots, totalMiningCount, totalOnlineCount);
-                }
-                catch (Exception e) {
-                    Logger.ErrorDebugLine(e);
-                    response = ResponseBase.ServerError<QueryClientsResponse>(e.Message);
-                }
-            }
+            QueryClientsResponse response = ClientDataController.DoQueryClients(request, User);
             var httpResponseMessage = new HttpResponseMessage(HttpStatusCode.OK) {
                 Content = new ByteArrayContent(VirtualRoot.BinarySerializer.Serialize(response))
             };

+ 10 - 6
src/WebApiServer/Controllers/ClientDataController.cs

@@ -11,17 +11,22 @@ namespace NTMiner.Controllers {
         [Role.User]
         [HttpPost]
         public QueryClientsResponse QueryClients([FromBody]QueryClientsRequest request) {
+            return DoQueryClients(request, User);
+        }
+        #endregion
+
+        internal static QueryClientsResponse DoQueryClients(QueryClientsRequest request, UserData user) {
             if (request == null) {
                 return ResponseBase.InvalidInput<QueryClientsResponse>("参数错误");
             }
             request.PagingTrim();
             try {
                 var data = WebApiRoot.ClientDataSet.QueryClients(
-                    User, 
-                    request, 
-                    out int total, 
-                    out List<CoinSnapshotData> latestSnapshots, 
-                    out int totalOnlineCount, 
+                    user,
+                    request,
+                    out int total,
+                    out List<CoinSnapshotData> latestSnapshots,
+                    out int totalOnlineCount,
                     out int totalMiningCount) ?? new List<ClientData>();
                 return QueryClientsResponse.Ok(data, total, latestSnapshots, totalMiningCount, totalOnlineCount);
             }
@@ -30,7 +35,6 @@ namespace NTMiner.Controllers {
                 return ResponseBase.ServerError<QueryClientsResponse>(e.Message);
             }
         }
-        #endregion
 
         #region UpdateClient
         [Role.User]

+ 6 - 2
src/WebApiServer/Controllers/ServerMessageController.cs

@@ -9,8 +9,12 @@ namespace NTMiner.Controllers {
         // TODO:提供一个压缩版本的
         [HttpPost]
         public DataResponse<List<ServerMessageData>> ServerMessages([FromBody]ServerMessagesRequest request) {
-            if (request == null || 
-                request.Timestamp < 0 /*早于1970年*/ || 
+            return DoServerMessages(request);
+        }
+
+        internal static DataResponse<List<ServerMessageData>> DoServerMessages(ServerMessagesRequest request) {
+            if (request == null ||
+                request.Timestamp < 0 /*早于1970年*/ ||
                 request.Timestamp > Timestamp.GetTimestamp(DateTime.Now.AddDays(1))/*晚于明天*/) {
                 return ResponseBase.InvalidInput<DataResponse<List<ServerMessageData>>>("参数错误");
             }