Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
 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;
     }
 }
Exemplo n.º 3
0
 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()
     });
 }
Exemplo n.º 5
0
 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);
             }
         }
     }
 }
Exemplo n.º 6
0
 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;
         }
     }
 }
Exemplo n.º 7
0
 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));
     }
 }
Exemplo n.º 9
0
 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;
         }
     }
 }
Exemplo n.º 10
0
 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()
     });
 }
Exemplo n.º 11
0
 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));
     }
 }
Exemplo n.º 13
0
 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));
     }
 }
Exemplo n.º 14
0
 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);
             }
         }
     }
 }
Exemplo n.º 15
0
 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;
         }
     }
 }
Exemplo n.º 16
0
 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();
         }
     }
 }
Exemplo n.º 17
0
        public string GetJsonFileVersion([FromBody] AppSettingRequest request)
        {
            ServerStateResponse serverState = WebApiRoot.GetServerStateResponse(request.Key);

            return(serverState.ToLine());
        }