public void AddOrUpdateMinerGroup(MinerGroupData entity, Action <ResponseBase> callback)
 {
     Task.Factory.StartNew(() => {
         Guid messageId = Guid.NewGuid();
         try {
             entity.ModifiedOn = DateTime.Now;
             AddOrUpdateMinerGroupRequest request = new AddOrUpdateMinerGroupRequest {
                 MessageId = messageId,
                 LoginName = LoginName,
                 Data      = entity,
                 Timestamp = DateTime.Now
             };
             request.SignIt(Password);
             using (var service = CreateService()) {
                 ResponseBase response = service.AddOrUpdateMinerGroup(request);
                 callback?.Invoke(response);
             }
         }
         catch (CommunicationException e) {
             Global.DebugLine(e.Message, ConsoleColor.Red);
             callback?.Invoke(ResponseBase.ClientError(messageId, e.Message));
         }
         catch (Exception e) {
             Global.Logger.Error(e.Message, e);
             callback?.Invoke(ResponseBase.ClientError(messageId, e.Message));
         }
     });
 }
            public void AddOrUpdateMinerGroupAsync(MinerGroupData entity, Action <ResponseBase, Exception> callback)
            {
                entity.ModifiedOn = DateTime.Now;
                DataRequest <MinerGroupData> request = new DataRequest <MinerGroupData> {
                    Data = entity
                };

                PostAsync(SControllerName, nameof(IControlCenterController.AddOrUpdateMinerGroup), request.ToQuery(SingleUser.LoginName, SingleUser.PasswordSha1), request, callback);
            }
Esempio n. 3
0
        public void AddOrUpdateMinerGroupAsync(MinerGroupData entity, Action <ResponseBase, Exception> callback)
        {
            entity.ModifiedOn = DateTime.Now;
            DataRequest <MinerGroupData> request = new DataRequest <MinerGroupData> {
                Data = entity
            };

            RpcRoot.PostAsync(NTMinerRegistry.GetControlCenterHost(), NTKeyword.ControlCenterPort, _controllerName, nameof(IMinerGroupController.AddOrUpdateMinerGroup), request, request, callback);
        }
Esempio n. 4
0
        public void AddOrUpdateMinerGroupAsync(MinerGroupData entity, Action <ResponseBase, Exception> callback)
        {
            entity.ModifiedOn = DateTime.Now;
            DataRequest <MinerGroupData> request = new DataRequest <MinerGroupData> {
                Data = entity
            };

            JsonRpcRoot.SignPostAsync(RpcRoot.OfficialServerHost, RpcRoot.OfficialServerPort, _controllerName, nameof(IUserMinerGroupController.AddOrUpdateMinerGroup), data: request, callback);
        }
Esempio n. 5
0
 public MinerGroupSet()
 {
     VirtualRoot.AddEventPath <MinerStudioServiceSwitchedEvent>("切换了群口后台服务类型后刷新内存", LogEnum.DevConsole, action: message => {
         _dicById.Clear();
         _isInited = false;
         // 初始化以触发MinerGroupSetInitedEvent事件
         InitOnece();
     }, this.GetType());
     VirtualRoot.AddCmdPath <AddMinerGroupCommand>(action: message => {
         InitOnece();
         if (!_dicById.ContainsKey(message.Input.Id))
         {
             var repository = VirtualRoot.CreateLocalRepository <MinerGroupData>();
             var data       = new MinerGroupData().Update(message.Input);
             data.CreatedOn = DateTime.Now;
             _dicById.Add(data.Id, data);
             repository.Add(data);
             VirtualRoot.RaiseEvent(new MinerGroupAddedEvent(message.MessageId, data));
         }
     }, this.GetType());
     VirtualRoot.AddCmdPath <UpdateMinerGroupCommand>(action: message => {
         InitOnece();
         if (_dicById.TryGetValue(message.Input.Id, out MinerGroupData data))
         {
             var repository = VirtualRoot.CreateLocalRepository <MinerGroupData>();
             data.Update(message.Input);
             data.ModifiedOn = DateTime.Now;
             repository.Update(data);
             VirtualRoot.RaiseEvent(new MinerGroupUpdatedEvent(message.MessageId, data));
         }
     }, this.GetType());
     VirtualRoot.AddCmdPath <RemoveMinerGroupCommand>(action: message => {
         InitOnece();
         if (_dicById.TryGetValue(message.EntityId, out MinerGroupData entity))
         {
             _dicById.Remove(message.EntityId);
             var repository = VirtualRoot.CreateLocalRepository <MinerGroupData>();
             repository.Remove(message.EntityId);
             VirtualRoot.RaiseEvent(new MinerGroupRemovedEvent(message.MessageId, entity));
         }
     }, this.GetType());
 }
Esempio n. 6
0
 public void AddOrUpdate(MinerGroupData data)
 {
     InitOnece();
     lock (_locker) {
         using (LiteDatabase db = HostRoot.CreateLocalDb()) {
             var col = db.GetCollection <MinerGroupData>();
             if (_dicById.ContainsKey(data.Id))
             {
                 data.ModifiedOn = DateTime.Now;
                 _dicById[data.Id].Update(data);
                 col.Update(_dicById[data.Id]);
             }
             else
             {
                 data.CreatedOn = DateTime.Now;
                 _dicById.Add(data.Id, data);
                 col.Insert(data);
             }
         }
     }
 }
Esempio n. 7
0
 public MinerGroupSet()
 {
     VirtualRoot.AddCmdPath <AddMinerGroupCommand>(action: message => {
         InitOnece();
         if (!_dicById.ContainsKey(message.Input.Id))
         {
             var repository = VirtualRoot.CreateLocalRepository <MinerGroupData>();
             var data       = new MinerGroupData().Update(message.Input);
             data.CreatedOn = DateTime.Now;
             _dicById.Add(data.Id, data);
             repository.Add(data);
             VirtualRoot.RaiseEvent(new MinerGroupAddedEvent(message.MessageId, data));
         }
     }, this.GetType());
     VirtualRoot.AddCmdPath <UpdateMinerGroupCommand>(action: message => {
         InitOnece();
         if (_dicById.TryGetValue(message.Input.Id, out MinerGroupData data))
         {
             var repository = VirtualRoot.CreateLocalRepository <MinerGroupData>();
             data.Update(message.Input);
             data.ModifiedOn = DateTime.Now;
             repository.Update(data);
             VirtualRoot.RaiseEvent(new MinerGroupUpdatedEvent(message.MessageId, data));
         }
     }, this.GetType());
     VirtualRoot.AddCmdPath <RemoveMinerGroupCommand>(action: message => {
         InitOnece();
         if (_dicById.TryGetValue(message.EntityId, out MinerGroupData entity))
         {
             _dicById.Remove(message.EntityId);
             var repository = VirtualRoot.CreateLocalRepository <MinerGroupData>();
             repository.Remove(message.EntityId);
             VirtualRoot.RaiseEvent(new MinerGroupRemovedEvent(message.MessageId, entity));
         }
     }, this.GetType());
 }
Esempio n. 8
0
 public MinerGroupSet(INTMinerRoot root)
 {
     _root = root;
     Global.Access <AddMinerGroupCommand>(
         Guid.Parse("051DE144-1C91-4633-B826-EDFBE951B450"),
         "添加矿工组",
         LogEnum.Log,
         action: (message) => {
         InitOnece();
         if (message == null || message.Input == null || message.Input.GetId() == Guid.Empty)
         {
             throw new ArgumentNullException();
         }
         if (string.IsNullOrEmpty(message.Input.Name))
         {
             throw new ValidationException("minerGroup name can't be null or empty");
         }
         if (_dicById.ContainsKey(message.Input.GetId()))
         {
             return;
         }
         MinerGroupData entity = new MinerGroupData().Update(message.Input);
         _dicById.Add(entity.Id, entity);
         Server.ControlCenterService.AddOrUpdateMinerGroup(entity, response => {
             if (response.IsSuccess())
             {
                 Global.Happened(new MinerGroupAddedEvent(entity));
             }
         });
     });
     Global.Access <UpdateMinerGroupCommand>(
         Guid.Parse("BC6ADC0E-E57C-4313-8C85-D866E2068913"),
         "更新矿工组",
         LogEnum.Log,
         action: (message) => {
         InitOnece();
         if (message == null || message.Input == null || message.Input.GetId() == Guid.Empty)
         {
             throw new ArgumentNullException();
         }
         if (string.IsNullOrEmpty(message.Input.Name))
         {
             throw new ValidationException("minerGroup name can't be null or empty");
         }
         if (!_dicById.ContainsKey(message.Input.GetId()))
         {
             return;
         }
         MinerGroupData entity = _dicById[message.Input.GetId()];
         entity.Update(message.Input);
         Server.ControlCenterService.AddOrUpdateMinerGroup(entity, isSuccess => {
             Global.Happened(new MinerGroupUpdatedEvent(entity));
         });
     });
     Global.Access <RemoveMinerGroupCommand>(
         Guid.Parse("3083F1E6-0932-484E-AD2F-BDEA2790FD44"),
         "移除矿工组",
         LogEnum.Log,
         action: (message) => {
         InitOnece();
         if (message == null || message.EntityId == Guid.Empty)
         {
             throw new ArgumentNullException();
         }
         if (!_dicById.ContainsKey(message.EntityId))
         {
             return;
         }
         MinerGroupData entity = _dicById[message.EntityId];
         _dicById.Remove(entity.Id);
         Server.ControlCenterService.RemoveMinerGroup(entity.Id, isSuccess => {
             Global.Happened(new MinerGroupRemovedEvent(entity));
         });
     });
     BootLog.Log(this.GetType().FullName + "接入总线");
 }
Esempio n. 9
0
 public MinerGroupSet()
 {
     VirtualRoot.AddCmdPath <AddMinerGroupCommand>(action: (message) => {
         InitOnece();
         if (message == null || message.Input == null || message.Input.GetId() == Guid.Empty)
         {
             throw new ArgumentNullException();
         }
         if (string.IsNullOrEmpty(message.Input.Name))
         {
             throw new ValidationException("minerGroup name can't be null or empty");
         }
         if (_dicById.ContainsKey(message.Input.GetId()))
         {
             return;
         }
         MinerGroupData entity = new MinerGroupData().Update(message.Input);
         RpcRoot.Server.MinerGroupService.AddOrUpdateMinerGroupAsync(entity, (response, exception) => {
             if (response.IsSuccess())
             {
                 _dicById.Add(entity.Id, entity);
                 VirtualRoot.RaiseEvent(new MinerGroupAddedEvent(message.Id, entity));
             }
             else
             {
                 Write.UserFail(response.ReadMessage(exception));
             }
         });
     }, location: this.GetType());
     VirtualRoot.AddCmdPath <UpdateMinerGroupCommand>(action: (message) => {
         InitOnece();
         if (message == null || message.Input == null || message.Input.GetId() == Guid.Empty)
         {
             throw new ArgumentNullException();
         }
         if (string.IsNullOrEmpty(message.Input.Name))
         {
             throw new ValidationException("minerGroup name can't be null or empty");
         }
         if (!_dicById.ContainsKey(message.Input.GetId()))
         {
             return;
         }
         MinerGroupData entity   = _dicById[message.Input.GetId()];
         MinerGroupData oldValue = new MinerGroupData().Update(entity);
         entity.Update(message.Input);
         RpcRoot.Server.MinerGroupService.AddOrUpdateMinerGroupAsync(entity, (response, exception) => {
             if (!response.IsSuccess())
             {
                 entity.Update(oldValue);
                 VirtualRoot.RaiseEvent(new MinerGroupUpdatedEvent(message.Id, entity));
                 Write.UserFail(response.ReadMessage(exception));
             }
         });
         VirtualRoot.RaiseEvent(new MinerGroupUpdatedEvent(message.Id, entity));
     }, location: this.GetType());
     VirtualRoot.AddCmdPath <RemoveMinerGroupCommand>(action: (message) => {
         InitOnece();
         if (message == null || message.EntityId == Guid.Empty)
         {
             throw new ArgumentNullException();
         }
         if (!_dicById.ContainsKey(message.EntityId))
         {
             return;
         }
         MinerGroupData entity = _dicById[message.EntityId];
         RpcRoot.Server.MinerGroupService.RemoveMinerGroupAsync(entity.Id, (response, exception) => {
             if (response.IsSuccess())
             {
                 _dicById.Remove(entity.Id);
                 VirtualRoot.RaiseEvent(new MinerGroupRemovedEvent(message.Id, entity));
             }
             else
             {
                 Write.UserFail(response.ReadMessage(exception));
             }
         });
     }, location: this.GetType());
 }
Esempio n. 10
0
 public MinerGroupSet(INTMinerRoot root)
 {
     _root = root;
     VirtualRoot.Window <AddMinerGroupCommand>("添加矿机分组", LogEnum.DevConsole,
                                               action: (message) => {
         InitOnece();
         if (message == null || message.Input == null || message.Input.GetId() == Guid.Empty)
         {
             throw new ArgumentNullException();
         }
         if (string.IsNullOrEmpty(message.Input.Name))
         {
             throw new ValidationException("minerGroup name can't be null or empty");
         }
         if (_dicById.ContainsKey(message.Input.GetId()))
         {
             return;
         }
         MinerGroupData entity = new MinerGroupData().Update(message.Input);
         Server.ControlCenterService.AddOrUpdateMinerGroupAsync(entity, (response, exception) => {
             if (response.IsSuccess())
             {
                 _dicById.Add(entity.Id, entity);
                 VirtualRoot.Happened(new MinerGroupAddedEvent(entity));
             }
             else if (response != null)
             {
                 Write.UserLine(response.Description, ConsoleColor.Red);
             }
         });
     });
     VirtualRoot.Window <UpdateMinerGroupCommand>("更新矿机分组", LogEnum.DevConsole,
                                                  action: (message) => {
         InitOnece();
         if (message == null || message.Input == null || message.Input.GetId() == Guid.Empty)
         {
             throw new ArgumentNullException();
         }
         if (string.IsNullOrEmpty(message.Input.Name))
         {
             throw new ValidationException("minerGroup name can't be null or empty");
         }
         if (!_dicById.ContainsKey(message.Input.GetId()))
         {
             return;
         }
         MinerGroupData entity   = _dicById[message.Input.GetId()];
         MinerGroupData oldValue = new MinerGroupData().Update(entity);
         entity.Update(message.Input);
         Server.ControlCenterService.AddOrUpdateMinerGroupAsync(entity, (response, exception) => {
             if (!response.IsSuccess())
             {
                 entity.Update(oldValue);
                 VirtualRoot.Happened(new MinerGroupUpdatedEvent(entity));
                 if (response != null)
                 {
                     Write.UserLine(response.Description, ConsoleColor.Red);
                 }
             }
         });
         VirtualRoot.Happened(new MinerGroupUpdatedEvent(entity));
     });
     VirtualRoot.Window <RemoveMinerGroupCommand>("移除矿机分组", LogEnum.DevConsole,
                                                  action: (message) => {
         InitOnece();
         if (message == null || message.EntityId == Guid.Empty)
         {
             throw new ArgumentNullException();
         }
         if (!_dicById.ContainsKey(message.EntityId))
         {
             return;
         }
         MinerGroupData entity = _dicById[message.EntityId];
         Server.ControlCenterService.RemoveMinerGroupAsync(entity.Id, (response, exception) => {
             if (response.IsSuccess())
             {
                 _dicById.Remove(entity.Id);
                 VirtualRoot.Happened(new MinerGroupRemovedEvent(entity));
             }
             else if (response != null)
             {
                 Write.UserLine(response.Description, ConsoleColor.Red);
             }
         });
     });
 }