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); }
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); }
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); }
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()); }
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); } } } }
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()); }
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 + "接入总线"); }
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()); }
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); } }); }); }