public ResponseBase AddOrUpdateNTMinerFile(AddOrUpdateNTMinerFileRequest request) { if (request == null) { return(LoadClientResponse.InvalidInput(Guid.Empty, "参数错误")); } try { if (string.IsNullOrEmpty(request.LoginName)) { return(ResponseBase.InvalidInput(request.MessageId, "登录名不能为空")); } if (!HostRoot.Current.UserSet.TryGetKey(request.LoginName, out IUser key)) { return(ResponseBase.Forbidden(request.MessageId)); } if (!request.Timestamp.IsInTime()) { return(ResponseBase.Expired(request.MessageId)); } if (request.Data == null) { return(ResponseBase.InvalidInput(request.MessageId)); } if (request.GetSign(key.Password) != request.Sign) { return(ResponseBase.Forbidden(request.MessageId, "签名验证未通过")); } HostRoot.Current.NTMinerFileSet.AddOrUpdate(request.Data); return(ResponseBase.Ok(request.MessageId)); } catch (Exception e) { Global.Logger.Error(e.Message, e); return(ResponseBase.ServerError(request.MessageId, e.Message)); } }
public void AddOrUpdateNTMinerFile(NTMinerFileData entity, Action <ResponseBase> callback) { Task.Factory.StartNew(() => { Guid messageId = Guid.NewGuid(); try { AddOrUpdateNTMinerFileRequest request = new AddOrUpdateNTMinerFileRequest() { MessageId = messageId, Data = entity, LoginName = LoginName, Timestamp = DateTime.Now }; request.SignIt(Password); using (var service = CreateService()) { ResponseBase response = service.AddOrUpdateNTMinerFile(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)); } }); }