public ResponseBase RemoveMinerGroup([FromBody] DataRequest <Guid> request) { if (request == null || request.Data == Guid.Empty) { return(ResponseBase.InvalidInput("参数错误")); } try { if (!request.IsValid(User, Sign, Timestamp, base.ClientIp, out ResponseBase response)) { return(response); } IMinerGroup minerGroup = HostRoot.Instance.MinerGroupSet.GetMinerGroup(request.Data); if (minerGroup == null) { return(ResponseBase.Ok()); } if (HostRoot.Instance.ClientSet.IsAnyClientInGroup(request.Data)) { return(ResponseBase.ClientError($"组{minerGroup.Name}下有矿机,请先移除矿机再做删除操作")); } HostRoot.Instance.MinerGroupSet.Remove(request.Data); return(ResponseBase.Ok()); } catch (Exception e) { Logger.ErrorDebugLine(e); return(ResponseBase.ServerError(e.Message)); } }
public ResponseBase RemoveMineWork([FromBody] DataRequest <Guid> request) { if (request == null || request.Data == Guid.Empty) { return(ResponseBase.InvalidInput("参数错误")); } try { if (!request.IsValid(HostRoot.Current.UserSet.GetUser, ClientIp, out ResponseBase response)) { return(response); } IMineWork mineWork = HostRoot.Current.MineWorkSet.GetMineWork(request.Data); if (mineWork == null) { return(ResponseBase.Ok()); } if (HostRoot.Current.ClientSet.IsAnyClientInWork(request.Data)) { return(ResponseBase.ClientError($"作业{mineWork.Name}下有矿机,请先移除矿机再做删除操作")); } HostRoot.Current.MineWorkSet.Remove(request.Data); return(ResponseBase.Ok()); } catch (Exception e) { Logger.ErrorDebugLine(e.Message, e); return(ResponseBase.ServerError(e.Message)); } }
public DataResponse <List <UserData> > Users([FromBody] DataRequest <Guid?> request) { if (request == null) { return(ResponseBase.InvalidInput <DataResponse <List <UserData> > >("参数错误")); } try { if (!request.Data.HasValue) { // request.Data是ClientId,如果未传ClientId表示是群控客户端,群控客户端获取用户表需验证身份 if (!request.IsValid(User, Sign, Timestamp, base.ClientIp, out DataResponse <List <UserData> > response)) { return(response); } } var data = HostRoot.Instance.UserSet.Cast <UserData>().ToList(); if (request.Data.HasValue) { // request.Data是ClientId,挖矿端获取用户表无需验证身份但获取到的用户表的密码是加密的和群控客户端获取到的不同的 data = data.Select(a => new UserData(a)).ToList(); foreach (var user in data) { user.Password = HashUtil.Sha1(HashUtil.Sha1(user.Password) + request.Data.Value); } } return(DataResponse <List <UserData> > .Ok(data)); } catch (Exception e) { Logger.ErrorDebugLine(e); return(ResponseBase.ServerError <DataResponse <List <UserData> > >(e.Message)); } }
// TODO: Get/GetAll with a Filter predicate that we can execute on the Data thread and only // return values which match. public DataResponse <TEntity> HandleRequest <TEntity>(DataRequest <TEntity> request) where TEntity : class, IDataEntity { if (!request.IsValid()) { return(DataResponse <TEntity> .BadRequest()); } try { switch (request.Type) { case DataRequestType.GetAll: var all = _storage.GetAll <TEntity>(); return(DataResponse <TEntity> .FoundAll(all)); case DataRequestType.Get: return(HandleGetRequest(request)); case DataRequestType.Delete: return(HandleDeleteRequest(request)); case DataRequestType.Save: return(HandleSaveRequest(request)); default: return(DataResponse <TEntity> .BadRequest()); } } catch (Exception e) { _log.LogError(e, "Error handling data request"); return(DataResponse <TEntity> .BadRequest()); } }
public ResponseBase RemovePool([FromBody]DataRequest<Guid> request) { if (request == null || request.Data == Guid.Empty) { return ResponseBase.InvalidInput("参数错误"); } try { if (!request.IsValid(User, Sign, Timestamp, base.ClientIp, out ResponseBase response)) { return response; } HostRoot.Instance.PoolSet.Remove(request.Data); return ResponseBase.Ok(); } catch (Exception e) { Logger.ErrorDebugLine(e); return ResponseBase.ServerError(e.Message); } }
public ResponseBase AddOrUpdateColumnsShow([FromBody] DataRequest <ColumnsShowData> request) { if (request == null || request.Data == null) { return(ResponseBase.InvalidInput("参数错误")); } try { if (!request.IsValid(User, Sign, Timestamp, base.ClientIp, out ResponseBase response)) { return(response); } HostRoot.Instance.ColumnsShowSet.AddOrUpdate(request.Data); return(ResponseBase.Ok()); } catch (Exception e) { Logger.ErrorDebugLine(e); return(ResponseBase.ServerError(e.Message)); } }
public ResponseBase RemoveOverClockData([FromBody] DataRequest <Guid> request) { if (request == null || request.Data == Guid.Empty) { return(ResponseBase.InvalidInput("参数错误")); } try { if (!request.IsValid(HostRoot.Instance.UserSet.GetUser, ClientIp, out ResponseBase response)) { return(response); } HostRoot.Instance.OverClockDataSet.Remove(request.Data); return(ResponseBase.Ok()); } catch (Exception e) { Logger.ErrorDebugLine(e.Message, e); return(ResponseBase.ServerError(e.Message)); } }
public ResponseBase RemoveKernelOutputKeyword(DataRequest <Guid> request) { if (request == null || request.Data == Guid.Empty) { return(ResponseBase.InvalidInput("参数错误")); } try { if (!request.IsValid(User, Sign, Timestamp, ClientIp, out ResponseBase response)) { return(response); } VirtualRoot.Execute(new RemoveKernelOutputKeywordCommand(request.Data)); return(ResponseBase.Ok()); } catch (Exception e) { Logger.ErrorDebugLine(e); return(ResponseBase.ServerError(e.Message)); } }
public ResponseBase RemoveNTMinerFile([FromBody] DataRequest <Guid> request) { if (request == null) { return(ResponseBase.InvalidInput("参数错误")); } try { if (!request.IsValid(User, Sign, Timestamp, ClientIp, out ResponseBase response)) { return(response); } HostRoot.Instance.NTMinerFileSet.Remove(request.Data); return(ResponseBase.Ok()); } catch (Exception e) { Logger.ErrorDebugLine(e); return(ResponseBase.ServerError(e.Message)); } }
public ResponseBase RemoveUser([FromBody] DataRequest <String> request) { if (request == null || string.IsNullOrEmpty(request.Data)) { return(ResponseBase.InvalidInput("参数错误")); } try { if (!request.IsValid(User, Sign, Timestamp, base.ClientIp, out ResponseBase response)) { return(response); } VirtualRoot.Execute(new RemoveUserCommand(request.Data)); return(ResponseBase.Ok()); } catch (Exception e) { Logger.ErrorDebugLine(e); return(ResponseBase.ServerError(e.Message)); } }
public void SignTest() { NTMinerFileData data = new NTMinerFileData() { AppType = NTMinerAppType.MinerClient, CreatedOn = DateTime.Now, Description = "this is a test", FileName = "test.exe", Id = Guid.NewGuid(), PublishOn = DateTime.Now, Title = "test", Version = "1.1", VersionTag = "test" }; SingleUser.LoginName = "test"; SingleUser.SetPasswordSha1(HashUtil.Sha1(SingleUser.LoginName)); DataRequest <NTMinerFileData> request = new DataRequest <NTMinerFileData>() { Data = data, LoginName = SingleUser.LoginName }; request.SignIt(SingleUser.PasswordSha1); request = new DataRequest <NTMinerFileData>() { Data = data, LoginName = "test", Sign = request.Sign, Timestamp = DateTime.Now }; var result = request.IsValid((loginName) => { return(new UserData() { Description = "test", IsEnabled = true, LoginName = SingleUser.LoginName, Password = SingleUser.PasswordSha1 }); }, "10.1.2.3", out ResponseBase response); Assert.IsTrue(result); }
public ResponseBase UpdateUser([FromBody] DataRequest <UserData> request) { if (request == null || request.Data == null) { return(ResponseBase.InvalidInput("参数错误")); } try { if (!request.IsValid(HostRoot.Instance.UserSet.GetUser, ClientIp, out ResponseBase response)) { return(response); } VirtualRoot.Execute(new UpdateUserCommand(request.Data)); return(ResponseBase.Ok()); } catch (Exception e) { Logger.ErrorDebugLine(e); return(ResponseBase.ServerError(e.Message)); } }
public ResponseBase AddOrUpdateNTMinerFile([FromBody] DataRequest <NTMinerFileData> request) { if (request == null || request.Data == null) { return(ResponseBase.InvalidInput("参数错误")); } try { if (!request.IsValid(HostRoot.Instance.UserSet.GetUser, ClientIp, out ResponseBase response)) { return(response); } HostRoot.Instance.NTMinerFileSet.AddOrUpdate(request.Data); return(ResponseBase.Ok()); } catch (Exception e) { Logger.ErrorDebugLine(e); return(ResponseBase.ServerError(e.Message)); } }
public ResponseBase AddOrUpdateKernelOutputKeyword(DataRequest <KernelOutputKeywordData> request) { if (request == null || request.Data == null) { return(ResponseBase.InvalidInput("参数错误")); } try { if (!request.IsValid(User, Sign, Timestamp, ClientIp, out ResponseBase response)) { return(response); } VirtualRoot.Execute(new AddOrUpdateKernelOutputKeywordCommand(request.Data)); HostRoot.Instance.UpdateKernelOutputKeywordTimestamp(DateTime.Now); return(ResponseBase.Ok()); } catch (Exception e) { Logger.ErrorDebugLine(e); return(ResponseBase.ServerError(e.Message)); } }
public ResponseBase SetAppSetting([FromBody] DataRequest <AppSettingData> request) { if (request == null || request.Data == null) { return(ResponseBase.InvalidInput("参数错误")); } try { if (!request.IsValid(HostRoot.Current.UserSet.GetUser, ClientIp, out ResponseBase response)) { return(response); } VirtualRoot.Execute(new ChangeAppSettingCommand(request.Data)); Write.DevLine($"{request.Data.Key} {request.Data.Value}"); return(ResponseBase.Ok()); } catch (Exception e) { Logger.ErrorDebugLine(e.Message, e); return(ResponseBase.ServerError(e.Message)); } }
public ResponseBase MarkDeleteServerMessage(DataRequest <Guid> request) { if (request == null || request.Data == Guid.Empty) { return(ResponseBase.InvalidInput("参数错误")); } try { if (!request.IsValid(User, Sign, Timestamp, ClientIp, out ResponseBase response)) { return(response); } VirtualRoot.Execute(new MarkDeleteServerMessageCommand(request.Data)); HostRoot.Instance.UpdateServerMessageTimestamp(); return(ResponseBase.Ok()); } catch (Exception e) { Logger.ErrorDebugLine(e); return(ResponseBase.ServerError(e.Message)); } }
public ResponseBase SetAppSetting([FromBody] DataRequest <AppSettingData> request) { if (request == null || request.Data == null) { return(ResponseBase.InvalidInput("参数错误")); } try { if (!request.IsValid(User, Sign, Timestamp, ClientIp, out ResponseBase response)) { return(response); } VirtualRoot.Execute(new SetLocalAppSettingCommand(request.Data)); Logger.InfoDebugLine($"{nameof(SetAppSetting)}({request.Data.Key}, {request.Data.Value})"); return(ResponseBase.Ok()); } catch (Exception e) { Logger.ErrorDebugLine(e); return(ResponseBase.ServerError(e.Message)); } }
public ResponseBase SetKernelOutputKeyword(DataRequest <KernelOutputKeywordData> request) { if (request == null || request.Data == null) { return(ResponseBase.InvalidInput("参数错误")); } try { if (!request.IsValid(User, Sign, Timestamp, ClientIp, out ResponseBase response)) { return(response); } VirtualRoot.Execute(new SetKernelOutputKeywordCommand(request.Data)); VirtualRoot.Execute(new SetLocalAppSettingCommand(new AppSettingData { Key = NTKeyword.KernelOutputKeywordVersionAppSettingKey, Value = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") })); return(ResponseBase.Ok()); } catch (Exception e) { Logger.ErrorDebugLine(e); return(ResponseBase.ServerError(e.Message)); } }
public ResponseBase SetAppSettings([FromBody] DataRequest <List <AppSettingData> > request) { if (request == null || request.Data == null) { return(ResponseBase.InvalidInput("参数错误")); } try { if (!request.IsValid(User, Sign, Timestamp, ClientIp, out ResponseBase response)) { return(response); } foreach (var item in request.Data) { VirtualRoot.Execute(new SetLocalAppSettingCommand(item)); } Logger.InfoDebugLine($"{nameof(SetAppSettings)} {string.Join(",", request.Data.Select(a => $"{a.Key}:{a.Value}"))}"); return(ResponseBase.Ok()); } catch (Exception e) { Logger.ErrorDebugLine(e); return(ResponseBase.ServerError(e.Message)); } }
public DataResponse <string> GetLocalJson([FromBody] DataRequest <Guid> request) { if (request == null) { return(ResponseBase.InvalidInput <DataResponse <string> >("参数错误")); } try { if (!request.IsValid(User, Sign, Timestamp, base.ClientIp, out DataResponse <string> response)) { return(response); } string localJsonFileFullName = SpecialPath.GetMineWorkLocalJsonFileFullName(request.Data); string data = string.Empty; if (File.Exists(localJsonFileFullName)) { data = File.ReadAllText(localJsonFileFullName); } return(DataResponse <string> .Ok(data)); } catch (Exception e) { Logger.ErrorDebugLine(e); return(ResponseBase.ServerError <DataResponse <string> >(e.Message)); } }