ntminer 5 years ago
parent
commit
d6563d599e

+ 1 - 1
src/AppModels/MinerStudio/IMinerStudioService.cs

@@ -6,7 +6,7 @@ using System.Collections.Generic;
 namespace NTMiner.MinerStudio {
     public interface IMinerStudioService {
         void GetLatestSnapshotsAsync(int limit, Action<GetCoinSnapshotsResponse, Exception> callback);
-        void QueryClientsAsync(QueryClientsRequest query, Action<QueryClientsResponse, Exception> callback);
+        void QueryClientsAsync(QueryClientsRequest query);
         void UpdateClientAsync(string objectId, string propertyName, object value, Action<ResponseBase, Exception> callback);
         void UpdateClientsAsync(string propertyName, Dictionary<string, object> values, Action<ResponseBase, Exception> callback);
         void RemoveClientsAsync(List<string> objectIds, Action<ResponseBase, Exception> callback);

+ 3 - 3
src/AppModels/MinerStudio/Impl/LocalMinerStudioService.cs

@@ -57,7 +57,7 @@ namespace NTMiner.MinerStudio.Impl {
         #endregion
 
         #region QueryClientsAsync
-        public void QueryClientsAsync(QueryClientsRequest query, Action<QueryClientsResponse, Exception> callback) {
+        public void QueryClientsAsync(QueryClientsRequest query) {
             try {
                 var data = _clientDataSet.QueryClients(
                     user: null,
@@ -66,10 +66,10 @@ namespace NTMiner.MinerStudio.Impl {
                     out List<CoinSnapshotData> latestSnapshots,
                     out int totalOnlineCount,
                     out int totalMiningCount);
-                callback?.Invoke(QueryClientsResponse.Ok(data, total, latestSnapshots, totalMiningCount, totalOnlineCount), null);
+                VirtualRoot.RaiseEvent(new QueryClientsResponseEvent(QueryClientsResponse.Ok(data, total, latestSnapshots, totalMiningCount, totalOnlineCount)));
             }
             catch (Exception e) {
-                callback?.Invoke(ResponseBase.ServerError<QueryClientsResponse>(e.Message), e);
+                VirtualRoot.RaiseEvent(new QueryClientsResponseEvent(ResponseBase.ServerError<QueryClientsResponse>(e.Message)));
             }
         }
         #endregion

+ 4 - 2
src/AppModels/MinerStudio/Impl/ServerMinerStudioService.cs

@@ -12,8 +12,10 @@ namespace NTMiner.MinerStudio.Impl {
         }
 
         #region QueryClientsAsync
-        public void QueryClientsAsync(QueryClientsRequest query, Action<QueryClientsResponse, Exception> callback) {
-            RpcRoot.OfficialServer.ClientDataBinaryService.QueryClientsAsync(query, callback);
+        public void QueryClientsAsync(QueryClientsRequest query) {
+            MinerStudioRoot.WsClient.SendAsync(new WsMessage(Guid.NewGuid(), WsMessage.QueryClientDatas) {
+                Data = query
+            });
         }
         #endregion
 

+ 2 - 2
src/AppModels/MinerStudio/MinerStudioService.cs

@@ -28,8 +28,8 @@ namespace NTMiner.MinerStudio {
             Service.GetLatestSnapshotsAsync(limit, callback);
         }
 
-        public void QueryClientsAsync(QueryClientsRequest query, Action<QueryClientsResponse, Exception> callback) {
-            Service.QueryClientsAsync(query, callback);
+        public void QueryClientsAsync(QueryClientsRequest query) {
+            Service.QueryClientsAsync(query);
         }
 
         public void UpdateClientAsync(string objectId, string propertyName, object value, Action<ResponseBase, Exception> callback) {

+ 0 - 5
src/AppModels/MinerStudio/Vms/MinerClientsWindowViewModel.cs

@@ -162,11 +162,6 @@ namespace NTMiner.MinerStudio.Vms {
                 GpuDriver = GpuDriver,
                 SortField = SortField,
                 SortDirection = this._sortDirection[SortField]
-            }, (response, exception) => {
-                if (!isAuto) {
-                    this.IsLoading = false;
-                }
-                VirtualRoot.RaiseEvent(new QueryClientsResponseEvent(response));
             });
         }
 

+ 23 - 0
src/NTMinerDataSchemas/Core/MinerServer/QueryClientsForWsRequest.cs

@@ -1,5 +1,28 @@
 namespace NTMiner.Core.MinerServer {
     public class QueryClientsForWsRequest : QueryClientsRequest {
+        public static QueryClientsForWsRequest Create(QueryClientsRequest request, string loginName) {
+            return new QueryClientsForWsRequest {
+                Coin = request.Coin,
+                GpuDriver = request.GpuDriver,
+                GpuName = request.GpuName,
+                GpuType = request.GpuType,
+                GroupId = request.GroupId,
+                Kernel = request.Kernel,
+                MinerIp = request.MinerIp,
+                MinerName = request.MinerName,
+                MineState = request.MineState,
+                PageIndex = request.PageIndex,
+                PageSize = request.PageSize,
+                Pool = request.Pool,
+                SortDirection = request.SortDirection,
+                SortField = request.SortField,
+                Version = request.Version,
+                Wallet = request.Wallet,
+                WorkId = request.WorkId,
+                LoginName = loginName
+            };
+        }
+
         public QueryClientsForWsRequest() { }
 
         public string LoginName { get; set; }

+ 2 - 2
src/WsServer/MinerStudioBehavior.cs

@@ -48,8 +48,8 @@ namespace NTMiner {
                 return;
             }
             if (message.Type == WsMessage.QueryClientDatas) {
-                if (message.TryGetData(out QueryClientsForWsRequest query)) {
-                    RpcRoot.OfficialServer.ClientDataBinaryService.QueryClientsForWsAsync(query, (QueryClientsResponse response, Exception ex) => {
+                if (message.TryGetData(out QueryClientsRequest query)) {
+                    RpcRoot.OfficialServer.ClientDataBinaryService.QueryClientsForWsAsync(QueryClientsForWsRequest.Create(query, minerSession.LoginName), (QueryClientsResponse response, Exception ex) => {
                         if (response.IsSuccess()) {
                             var userData = WsRoot.ReadOnlyUserSet.GetUser(UserId.CreateLoginNameUserId(minerSession.LoginName));
                             if (userData != null) {