public void SetCoinKernelProfileProperty(Guid workId, Guid coinKernelId, string propertyName, object value, Action <ResponseBase> callback) { Task.Factory.StartNew(() => { Guid messageId = Guid.NewGuid(); try { SetCoinKernelProfilePropertyRequest request = new SetCoinKernelProfilePropertyRequest { MessageId = messageId, LoginName = LoginName, CoinKernelId = coinKernelId, PropertyName = propertyName, Value = value, Timestamp = DateTime.Now, WorkId = workId }; request.SignIt(Password); using (var service = CreateService()) { ResponseBase response = service.SetCoinKernelProfileProperty(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 ResponseBase SetCoinKernelProfileProperty(SetCoinKernelProfilePropertyRequest 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 (!HostRoot.Current.MineWorkSet.Contains(request.WorkId)) { return(ResponseBase.InvalidInput(request.MessageId, "给定的workId不存在")); } if (request.Sign != request.GetSign(key.Password)) { return(ResponseBase.Forbidden(request.MessageId, "签名验证未通过")); } HostRoot.Current.MineProfileManager.SetCoinKernelProfileProperty(request.WorkId, request.CoinKernelId, request.PropertyName, request.Value); return(ResponseBase.Ok(request.MessageId)); } catch (Exception e) { Global.Logger.ErrorDebugLine(e.Message, e); return(ResponseBase.ServerError(request.MessageId, e.Message)); } }