public void SetAppSetting(UserAppSettingData appSetting) { InitOnece(); if (appSetting == null || string.IsNullOrEmpty(appSetting.LoginName)) { return; } if (!_dicByLoginName.TryGetValue(appSetting.LoginName, out List <UserAppSettingData> list)) { list = new List <UserAppSettingData>(); _dicByLoginName.Add(appSetting.LoginName, list); } var exist = list.FirstOrDefault(a => a.Key == appSetting.Key); if (exist != null) { exist.Value = appSetting.Value; } else { list.Add(appSetting); } using (LiteDatabase db = WebApiRoot.CreateLocalDb()) { var col = db.GetCollection <UserAppSettingData>(); col.Upsert(exist); } }
public void SaveCalcConfigs(List <CalcConfigData> data) { InitOnece(); if (data == null || data.Count == 0) { return; } lock (_locker) { var dic = new Dictionary <string, CalcConfigData>(StringComparer.OrdinalIgnoreCase); foreach (var item in data) { if (dic.TryGetValue(item.CoinCode, out CalcConfigData entity)) { entity.Update(item); } else { dic.Add(item.CoinCode, item); } } using (LiteDatabase db = WebApiRoot.CreateLocalDb()) { var col = db.GetCollection <CalcConfigData>(); col.Delete(Query.All()); col.Insert(dic.Values); } _dicByCode = dic; } }
public ReportResponse ReportSpeed([FromBody] SpeedData speedData) { try { if (speedData == null) { return(ResponseBase.InvalidInput <ReportResponse>()); } WebApiRoot.ClientDataSet.ReportSpeed(speedData, MinerIp, isFromWsServerNode: false); if (Version.TryParse(speedData.Version, out Version version)) { string jsonVersionKey = HomePath.GetServerJsonVersion(version); var response = ReportResponse.Ok(WebApiRoot.GetServerStateResponse(jsonVersionKey)); if (speedData.LocalServerMessageTimestamp.AddSeconds(1) < WebApiRoot.ServerMessageTimestamp) { var list = WebApiRoot.ServerMessageSet.GetServerMessages(speedData.LocalServerMessageTimestamp); // 如果服务器新消息少于10条直接在上报算力时的响应消息中携带上,如果较多就算了推迟到用户切换到消息界面查看时再获取 if (list.Count < 10) { response.NewServerMessages.AddRange(list); } } return(response); } } catch (Exception e) { Logger.ErrorDebugLine(e); } return(ResponseBase.InvalidInput <ReportResponse>()); }
public DataResponse <WebApiServerState> GetServerState([FromBody] object request) { if (request == null) { return(ResponseBase.InvalidInput <DataResponse <WebApiServerState> >("参数错误")); } return(new DataResponse <WebApiServerState> { StateCode = 200, ReasonPhrase = "Ok", Description = "成功", Data = WebApiRoot.GetServerState() }); }
public void RemoveById(Guid id) { InitOnece(); lock (_locker) { if (_dicById.ContainsKey(id)) { _dicById.Remove(id); using (LiteDatabase db = WebApiRoot.CreateLocalDb()) { var col = db.GetCollection <OverClockData>(); col.Delete(id); } } } }
private void Init() { lock (_locker) { if (!_isInited) { using (LiteDatabase db = WebApiRoot.CreateLocalDb()) { var col = db.GetCollection <CalcConfigData>(); foreach (var item in col.FindAll()) { _dicByCode.Add(item.CoinCode, item); } } _isInited = true; } } }
public ResponseBase MarkDeleteServerMessage([FromBody] DataRequest <Guid> request) { if (request == null || request.Data == Guid.Empty) { return(ResponseBase.InvalidInput("参数错误")); } try { VirtualRoot.Execute(new MarkDeleteServerMessageCommand(request.Data)); WebApiRoot.UpdateServerMessageTimestamp(); return(ResponseBase.Ok()); } catch (Exception e) { Logger.ErrorDebugLine(e); return(ResponseBase.ServerError(e.Message)); } }
public ResponseBase RemoveKernelOutputKeyword([FromBody] DataRequest <Guid> request) { if (request == null || request.Data == Guid.Empty) { return(ResponseBase.InvalidInput("参数错误")); } try { VirtualRoot.Execute(new RemoveKernelOutputKeywordCommand(request.Data)); WebApiRoot.UpdateKernelOutputKeywordTimestamp(DateTime.Now); return(ResponseBase.Ok()); } catch (Exception e) { Logger.ErrorDebugLine(e); return(ResponseBase.ServerError(e.Message)); } }
private void Init() { lock (_locker) { if (!_isInited) { using (LiteDatabase db = WebApiRoot.CreateLocalDb()) { var col = db.GetCollection <OverClockData>(); foreach (var item in col.FindAll()) { _dicById.Add(item.Id, item); } } _isInited = true; } } }
public DataResponse <WebApiServerState> GetServerState(SignRequest request) { if (request == null) { return(ResponseBase.InvalidInput <DataResponse <WebApiServerState> >("参数错误")); } if (!IsValidAdmin(request, out DataResponse <WebApiServerState> response)) { return(response); } return(new DataResponse <WebApiServerState> { StateCode = 200, ReasonPhrase = "Ok", Description = "成功", Data = WebApiRoot.GetServerState() }); }
public void AddOrUpdate(OverClockData data) { InitOnece(); lock (_locker) { using (LiteDatabase db = WebApiRoot.CreateLocalDb()) { var col = db.GetCollection <OverClockData>(); if (_dicById.TryGetValue(data.Id, out OverClockData entity)) { entity.Update(data); col.Update(entity); } else { _dicById.Add(data.Id, data); col.Insert(data); } } } }
public ResponseBase AddOrUpdateKernelOutputKeyword([FromBody] DataRequest <KernelOutputKeywordData> request) { if (request == null || request.Data == null) { return(ResponseBase.InvalidInput("参数错误")); } try { if (request.Data.GetDataLevel() != DataLevel.Global) { return(ResponseBase.InvalidInput("添加到服务器的内核输出关键字记录的DataLevel属性必须赋值为Global")); } VirtualRoot.Execute(new AddOrUpdateKernelOutputKeywordCommand(request.Data)); WebApiRoot.UpdateKernelOutputKeywordTimestamp(DateTime.Now); return(ResponseBase.Ok()); } catch (Exception e) { Logger.ErrorDebugLine(e); return(ResponseBase.ServerError(e.Message)); } }
public ResponseBase AddOrUpdateServerMessage([FromBody] DataRequest <ServerMessageData> request) { if (request == null || request.Data == null) { return(ResponseBase.InvalidInput("参数错误")); } try { if (!IsValidAdmin(request, out ResponseBase response)) { return(response); } VirtualRoot.Execute(new AddOrUpdateServerMessageCommand(request.Data)); WebApiRoot.UpdateServerMessageTimestamp(); return(ResponseBase.Ok()); } catch (Exception e) { Logger.ErrorDebugLine(e); return(ResponseBase.ServerError(e.Message)); } }
public void AddOrUpdate(UserMinerGroupData data) { InitOnece(); lock (_locker) { using (LiteDatabase db = WebApiRoot.CreateLocalDb()) { var col = db.GetCollection <UserMinerGroupData>(); if (_dicById.TryGetValue(data.Id, out UserMinerGroupData entity)) { data.ModifiedOn = DateTime.Now; entity.Update(data); col.Update(entity); } else { data.CreatedOn = DateTime.Now; _dicById.Add(data.Id, data); col.Insert(data); } } } }
private void Init() { lock (_locker) { if (!_isInited) { using (LiteDatabase db = WebApiRoot.CreateLocalDb()) { var col = db.GetCollection <UserAppSettingData>(); foreach (var item in col.FindAll()) { if (!_dicByLoginName.TryGetValue(item.LoginName, out List <UserAppSettingData> list)) { list = new List <UserAppSettingData>(); _dicByLoginName.Add(item.LoginName, list); } list.Add(item); } } _isInited = true; } } }
public void AddOrUpdate(NTMinerFileData data) { InitOnece(); lock (_locker) { using (LiteDatabase db = WebApiRoot.CreateLocalDb()) { var col = db.GetCollection <NTMinerFileData>(); if (_dicById.TryGetValue(data.Id, out NTMinerFileData entity)) { entity.Update(data); col.Update(entity); } else { data.CreatedOn = DateTime.Now; _dicById.Add(data.Id, data); col.Insert(data); } RefreshLatest(); } } }
public string GetJsonFileVersion([FromBody] AppSettingRequest request) { ServerStateResponse serverState = WebApiRoot.GetServerStateResponse(request.Key); return(serverState.ToLine()); }