private RemoteResult CreateInner(InnerData obj, bool local) { var timer = WriterCounters.Instance.CreateTimer.StartNew(); object key; object value; DeserializeData(obj, out key, out value); var command = _userCommandCreator.Create((TKey)key, (TValue)value); RemoteResult ret = _implModule.ExecuteNonQuery(command); if (!ret.IsError) { var metaTimer = WriterCounters.Instance.CreateMetaDataTimer.StartNew(); var metaCommand = _metaDataCommandCreator.CreateMetaData(local); metaCommand = _metaDataCommandCreator.SetKeytoCommand(metaCommand, key); ret = _implModule.ExecuteNonQuery(metaCommand); metaTimer.Complete(); } if (ret.IsError) { ret = new InnerServerError(ret); } timer.Complete(); return(ret); }
public OperationResult UpdateData(string scode, dynamic clientdata = null) { OperationResult result = new OperationResult(OperationResultType.Success, "成功执行!"); try { RemoteResult res = null; string msg = RemoteClient.Instance.SendCommandAndGetResult(new byte[] { (byte)SettingType.整体参数 }, CommandConst.读取参数, 48, scode, out res); //result.AppendData = DealCommandResult(res, clientdata); if (!string.IsNullOrEmpty(msg)) { result.ResultType = OperationResultType.Error; result.Message = msg; } else { result.AppendData = DealCommandResult(res, clientdata); } return(result); } catch (Exception ex) { result.ResultType = OperationResultType.Error; result.Message = ex.Message; return(result); } }
public RemoteResult ParseMessage(RemoteCommand remoteCommand) { var methods = _methodDictionaries.GetValueOrDefault(remoteCommand.RemoteProcedureDescriptor.ServiceHash); // Get the method to call on the service var lookup = methods.FindMethod(remoteCommand.RemoteProcedureDescriptor); var serviceType = methods.GetPrimaryInterface(); var method = lookup.Item2; // Get the actual service instance var service = _serviceProvider.GetService(serviceType); // Convert the parameters from the RemoteCommand into correct types var parameterTypes = method.GetParameters() .Select(p => p.ParameterType) .ToArray(); var parameters = remoteCommand.Parameters .Zip(parameterTypes, (o, t) => ConvertParameter(_serializer.ConvertObject(o, t), t)) .ToArray(); try { var returnValue = method.Invoke(service, parameters); // Make the call var result = new RemoteResult { RemoteSessionInformation = remoteCommand.RemoteSessionInformation, Result = returnValue }; var returnType = method.ReturnType; if (returnType.IsGenericType && returnType.GetGenericTypeDefinition() == typeof(Task <>)) { var task = ((Task)returnValue); task.Wait(); var resultProperty = typeof(Task <>).MakeGenericType(returnType.GetGenericArguments()).GetProperty("Result"); result.Result = resultProperty.GetValue(task); } return(result); } catch (TargetInvocationException e) { return(new RemoteResult { RemoteSessionInformation = remoteCommand.RemoteSessionInformation, Exception = e.InnerException }); } catch (Exception e) { return(new RemoteResult { RemoteSessionInformation = remoteCommand.RemoteSessionInformation, Exception = e }); } }
public override RemoteResult ExecuteNonQuery(SqlCommand command) { RemoteResult ret = null; using (var element = RentConnection()) { command.Connection = element.Element; try { command.ExecuteNonQuery(); ret = new SuccessResult(); } catch (SqlException e) { Logger.Logger.Instance.Error(e, ""); ret = new FailNetResult(e.Message); } catch (IOException e) { Logger.Logger.Instance.Error(e, ""); ret = new FailNetResult(e.Message); } catch (InvalidOperationException e) { Logger.Logger.Instance.Error(e, ""); ret = new FailNetResult(e.Message); } } return(ret); }
public OperationResult UpdateOutTemData(string scode) { OperationResult result = new OperationResult(OperationResultType.Success, "成功执行!"); try { RemoteResult res = null; string msg = RemoteClient.Instance.SendCommandAndGetResult(null, CommandConst.读取测量值, 35, scode, out res); //result.AppendData = DealCommandResult(res); if (!string.IsNullOrEmpty(msg)) { result.ResultType = OperationResultType.Error; result.Message = msg; } else { result.AppendData = DealCommandResult(res); } return(result); } catch (Exception ex) { result.ResultType = OperationResultType.Error; result.Message = ex.Message; return(result); } }
public OperationResult SaveAndSendData(string scode, dynamic clientdata = null) { OperationResult result = new OperationResult(OperationResultType.Success, "成功执行!"); try { RemoteResult res = null; byte[] datas = DeviceService.SaveDataAndGetCommand(clientdata); string msg = RemoteClient.Instance.SendCommandAndGetResult(datas, CommandConst.参数设定, 48, scode, out res); //result.AppendData = DealCommandResult(res, clientdata); if (!string.IsNullOrEmpty(msg)) { result.ResultType = OperationResultType.Error; result.Message = msg; } else { result.AppendData = DealCommandResult(res, clientdata); } return(result); } catch (Exception ex) { result.ResultType = OperationResultType.Error; result.Message = ex.Message; return(result); } }
private void SaveGameCallback(RemoteResult <PlayerEntity> result) { if (result.data != null) { Debug.Log(result.data.playerId); } }
protected void btnSyncTime_Click(object sender, EventArgs e) { //发送命令并且获得返回结果 //RemoteResult res=null; //RemoteClient.Instance.SendCommandAndGetResult(...out res) RemoteResult res = null; string msg = RemoteClient.Instance.SendCommandAndGetResult(new byte[] { (byte)ARMControl.修改时间, (byte)(DateTime.Now.Year - 2000), (byte)DateTime.Now.Month, (byte)DateTime.Now.Day, (byte)DateTime.Now.DayOfWeek, (byte)DateTime.Now.Hour, (byte)DateTime.Now.Minute, (byte)DateTime.Now.Second }, CommandConst.ARM控制指令, 12, "88888888", out res); if (!string.IsNullOrEmpty(msg)) { this.Message.Text = msg; } if (res != null) { this.Message.Text = "返回:" + res.tag.ToString(); //这里直接就是收到返回过后的业务处理 client_ReceiveCommandResult(res.senderUser, res.name, res.deviceCode, res.Datas, res.tag); } }
public OperationResult SyncTime(string scode) { OperationResult result = new OperationResult(OperationResultType.Success, "成功执行!"); try { RemoteResult res = null; string msg = RemoteClient.Instance.SendCommandAndGetResult(new byte[] { (byte)ARMControl.修改时间, (byte)(DateTime.Now.Year - 2000), (byte)DateTime.Now.Month, (byte)DateTime.Now.Day, (byte)DateTime.Now.DayOfWeek, (byte)DateTime.Now.Hour, (byte)DateTime.Now.Minute, (byte)DateTime.Now.Second }, CommandConst.ARM控制指令, 12, scode, out res); if (!string.IsNullOrEmpty(msg)) { result.ResultType = OperationResultType.Error; result.Message = msg; } else { result.AppendData = DealCommandResult(res); } return(result); } catch (Exception ex) { result.ResultType = OperationResultType.Error; result.Message = ex.Message; return(result); } }
public static RequestState GetStatefromRemoteResult(RemoteResult result) { if(result.IsError) return RequestState.Error; return RequestState.Complete; }
public InnerData ReadOperation(ServerId server, InnerData data) { Logger.Logger.Instance.Debug(string.Format("DistributorNetModule: process server = {0}, data = {1}", server, data.Transaction.EventHash)); var connection = FindServer(server) as SingleConnectionToWriter; if (connection == null) { ConnectToWriter(server); connection = FindServer(server) as SingleConnectionToWriter; } if (connection == null) { Logger.Logger.Instance.Debug(string.Format( "DistributorNetModule: process server not found server = {0}, data = {1}", server, data.Transaction.EventHash)); RemoveConnection(server); _distributor.ServerNotAvailable(server); return(null); } RemoteResult res = null; var ret = connection.ReadOperation(data, out res); if (res is FailNetResult) { RemoveConnection(server); _distributor.ServerNotAvailable(server); } return(ret); }
private RemoteResult UpdateInner(InnerData obj, bool local) { object key; object value; DeserializeData(obj, out key, out value); var command = _userCommandCreator.Update((TKey)key, (TValue)value); RemoteResult ret = _implModule.ExecuteNonQuery(command); if (!ret.IsError) { command = _metaDataCommandCreator.UpdateMetaData(local); command = _metaDataCommandCreator.SetKeytoCommand(command, key); ret = _implModule.ExecuteNonQuery(command); } if (ret.IsError) { ret = new InnerServerError(ret); } return(ret); }
public OperationResult SaveAndSendDeviceCurveLibrary(string scode, int deviceId) { OperationResult result = new OperationResult(OperationResultType.Success, "成功执行!"); try { RemoteResult res = null; var curs = DeviceService.DeviceCureLibraries .Where(r => r.DeviceId == deviceId).OrderBy(r => r.Id) .ToList(); int rowCount = curs.Count; string strTmp = ""; short tmp = 0; byte[] arr = new byte[243]; int colCount = 121;//dt.Columns.Count; for (int j = 0; j < rowCount; j++) { var row = curs[j]; arr[0] = (byte)(Convert.ToInt32(row.Code) + 1); //type for (int i = 1; i <= 121; i++) { strTmp = Convert.ToDecimal(row.GetValue("Column" + i.ToString())).ToString("0.00"); strTmp = strTmp.Replace(".", ""); tmp = short.Parse(strTmp); arr[((i - 1) * 2 + 1)] = (byte)(tmp >> 8); arr[((i - 1) * 2 + 2)] = (byte)(tmp & 0xFF); } string msg = RemoteClient.Instance.SendCommandAndGetResult(arr, CommandConst.参数设定, 247, scode, out res); if (!string.IsNullOrEmpty(msg)) { result.ResultType = OperationResultType.Error; result.Message = msg; break; } else { DealCommandResult(res); } Thread.Sleep(600); } return(result); } catch (Exception ex) { result.ResultType = OperationResultType.Error; result.Message = ex.Message; return(result); } }
private void GetUserPlayerCallback(RemoteResult <PlayerEntity[]> result) { PlayerEntity[] players = result.data; foreach (PlayerEntity player in players) { KeyValuesUpdate kv = new KeyValuesUpdate("SetPlayer", player); MessageCenter.instance.SendMessage("ChoosePlayerPanel", kv); } }
public dynamic DealCommandResult(RemoteResult res, dynamic clientdata = null) { dynamic resobj = null; //var service = new DeviceService(); resobj = DeviceService.DealCommandResult(res, clientdata); return(resobj); }
public byte[] SerializeResult(RemoteResult remoteResult) { var stream = new MemoryStream(); var serializer = new XmlSerializer(typeof(RemoteResult)); serializer.Serialize(stream, remoteResult); stream.Flush(); return(stream.GetBuffer()); }
public OperationResult SetDeviceCurveLibrary(string scode, int sid) { var curvelist = DeviceService.DeviceCureLibraries.Where(r => r.DeviceId == sid).ToList(); //if (dt.Rows.Count != 30) //{ // ShowMessage("曲线库数量不正确,必须为30条时才能下发!"); // return; //} RemoteResult res = null; OperationResult result = new OperationResult(OperationResultType.Success, "成功执行!"); try { if (curvelist.Count > 0) { int rowCount = curvelist.Count; string strTmp = ""; short tmp = 0; byte[] arr = new byte[243]; int colCount = curvelist.Count; for (int j = 0; j < rowCount; j++) { var cur = curvelist[j]; arr[0] = (byte)(cur.Code + 1); //type for (int i = 1; i <= 121; i++) { var temp = cur.GetValue("Column" + i.ToString()).GetString(); strTmp = Convert.ToDecimal(temp).ToString("0.00"); strTmp = strTmp.Replace(".", ""); tmp = short.Parse(strTmp); arr[((i - 4) * 2 + 1)] = (byte)(tmp >> 8); arr[((i - 4) * 2 + 2)] = (byte)(tmp & 0xFF); } // SendCommand(arr, CommandConst.参数设定, 247); //Thread.Sleep(600); } string msg = RemoteClient.Instance.SendCommandAndGetResult(arr, CommandConst.参数设定, 247, scode, out res); result.AppendData = res; } result.ResultType = OperationResultType.Error; result.Message = "没有曲线库"; return(result); } catch (Exception ex) { result.ResultType = OperationResultType.Error; result.Message = ex.Message; return(result); } }
public OperationResult UpdateHistory(string scode, int cmbHistoryType, int nuRowNumber) { OperationResult result = new OperationResult(OperationResultType.Success, "成功执行!"); try { RemoteResult res = null; string msg = string.Empty; ushort tmpValue = (ushort)nuRowNumber; byte hiByte = Utility.HiByte(tmpValue); byte loByte = Utility.LoByte(tmpValue); switch ((HistoryType)cmbHistoryType) { case HistoryType.读取正常记录: msg = RemoteClient.Instance.SendCommandAndGetResult(new byte[] { (byte)HistoryType.读取正常记录, hiByte, loByte }, CommandConst.读取历史数据, 51, scode, out res); break; case HistoryType.读取参数修改记录: msg = RemoteClient.Instance.SendCommandAndGetResult(new byte[] { (byte)HistoryType.读取参数修改记录, hiByte, loByte }, CommandConst.读取历史数据, 65, scode, out res); break; case HistoryType.模式曲线修改记录: msg = RemoteClient.Instance.SendCommandAndGetResult(new byte[] { (byte)HistoryType.模式曲线修改记录, hiByte, loByte }, CommandConst.读取历史数据, 101, scode, out res); break; case HistoryType.温度曲线修改记录: msg = RemoteClient.Instance.SendCommandAndGetResult(new byte[] { (byte)HistoryType.温度曲线修改记录, hiByte, loByte }, CommandConst.读取历史数据, 255, scode, out res); break; default: break; } if (!string.IsNullOrEmpty(msg)) { result.ResultType = OperationResultType.Error; result.Message = msg; } else { result.AppendData = DealCommandResult(res, new { cmbHistoryType = cmbHistoryType, nuRowNumber = nuRowNumber }); } return(result); } catch (Exception ex) { result.ResultType = OperationResultType.Error; result.Message = ex.Message; return(result); } }
public OperationResult UpdateTimeSpan(string scode, int timespantype) { OperationResult result = new OperationResult(OperationResultType.Success, "成功执行!"); try { RemoteResult res = null; TimeSpanType spanType = (TimeSpanType)timespantype; string msg = string.Empty; switch (spanType) { case TimeSpanType.假日: msg = RemoteClient.Instance.SendCommandAndGetResult(new byte[] { (byte)SettingType.假日模式曲线设置 }, CommandConst.读取参数, 79, scode, out res); //SendCommand(new byte[] { (byte)SettingType.假日模式曲线设置 }, CommandConst.读取参数, 79); break; case TimeSpanType.周六: msg = RemoteClient.Instance.SendCommandAndGetResult(new byte[] { (byte)SettingType.周六模式曲线设置 }, CommandConst.读取参数, 79, scode, out res); break; case TimeSpanType.周日: msg = RemoteClient.Instance.SendCommandAndGetResult(new byte[] { (byte)SettingType.周日模式曲线设置 }, CommandConst.读取参数, 79, scode, out res); break; case TimeSpanType.工作日: msg = RemoteClient.Instance.SendCommandAndGetResult(new byte[] { (byte)SettingType.工作模式曲线设置 }, CommandConst.读取参数, 79, scode, out res); break; default: break; } if (!string.IsNullOrEmpty(msg)) { result.ResultType = OperationResultType.Error; result.Message = msg; } else { result.AppendData = DealCommandResult(res, new { timespantype = timespantype }); } return(result); } catch (Exception ex) { result.ResultType = OperationResultType.Error; result.Message = ex.Message; return(result); } }
public override RemoteResult Create(InnerData obj, bool local) { var meta = ReadMetaData(obj); if (meta.Item1 == null && meta.Item2) { return(CreateInner(obj, local)); } if (meta.Item1 == null && !meta.Item2) { return(CreateMetaUpdateData(obj, local)); } object key; object value; DeserializeData(obj, out key, out value); if (meta.Item2) { var command = _userCommandCreator.Create((TKey)key, (TValue)value); RemoteResult ret = _implModule.ExecuteNonQuery(command); if (ret.IsError) { return(new InnerServerError(ret)); } } if (meta.Item1.IsDeleted) { var metaCommand = _metaDataCommandCreator.SetDataNotDeleted(); metaCommand = _metaDataCommandCreator.SetKeytoCommand(metaCommand, key); var ret = _implModule.ExecuteNonQuery(metaCommand); if (ret.IsError) { ret = new InnerServerError(ret); } else { return(UpdateInner(obj, local)); } return(ret); } return(new InnerServerError(Errors.DataAlreadyExists)); }
public override RemoteResult DeleteRollback(InnerData obj, bool local) { object key; object value; DeserializeData(obj, out key, out value); var metaCommand = _metaDataCommandCreator.SetDataNotDeleted(); metaCommand = _metaDataCommandCreator.SetKeytoCommand(metaCommand, key); RemoteResult ret = _implModule.ExecuteNonQuery(metaCommand); return(ret); }
private void RegistCallback(RemoteResult <UserEntity> result) { if (result.code == 0) { KeyValuesUpdate kv = new KeyValuesUpdate("Error", result.message); MessageCenter.instance.SendMessage("ErrorPanel", kv); } else { KeyValuesUpdate kv = new KeyValuesUpdate("Tips", result.message); MessageCenter.instance.SendMessage("TipsPanel", kv); EventTriggerListener.Get(changeBtn).onClick.Invoke(changeBtn); } }
private void AddPlayerCallback(RemoteResult <PlayerEntity> result) { if (result.code == 0) { KeyValuesUpdate kv = new KeyValuesUpdate("Error", result.message); MessageCenter.instance.SendMessage("ErrorPanel", kv); } else { KeyValuesUpdate kv = new KeyValuesUpdate("SetPlayer", result.data); MessageCenter.instance.SendMessage("ChoosePlayerPanel", kv); ToggleCreatePanel(); } }
private void SaveGameCallBack(RemoteResult <PlayerEntity> result) { if (result.code == 0) { KeyValuesUpdate kv = new KeyValuesUpdate("Error", result.message); MessageCenter.instance.SendMessage("ErrorPanel", kv); } else { Debug.Log(result.message); KeyValuesUpdate kv = new KeyValuesUpdate("Tips", result.message); MessageCenter.instance.SendMessage("TipsPanel", kv); } }
private RemoteResult CheckResult(InnerData data, RemoteResult result) { if (result is InnerFailResult) { data.Transaction.SetError(); data.Transaction.AddErrorDescription(result.Description); } _queue.TransactionAnswerQueue.Add(data.Transaction); if (data.Transaction.OperationType == OperationType.Sync) { return(result); } return(null); }
public SettingsViewModel(ISettings settings, Keys keys, IGeoCoder locator, ICongress congress, INavigationService2 navigationService) : base(navigationService) { _settings = settings; _congress = congress; _zipSearchVm = new ZipCodeSearchViewModel(navigationService); _geoVM = new GeoLocationViewModel(keys, navigationService); _locator = locator; _location = _settings.Location; if (_location != null) { _zipcode = _location.ZipCode; } _district = new RemoteResult<dynamic>(() => _congress.FindFirstDistrict(_location.Lat, _location.Long), () => RaisePropertiesChanged("District"), new ExpandoObject()); }
public override RemoteResult Delete(InnerData obj) { object key; DeserializeKey(obj, out key); var metaCommand = _metaDataCommandCreator.SetDataDeleted(); metaCommand = _metaDataCommandCreator.SetKeytoCommand(metaCommand, key); RemoteResult ret = _implModule.ExecuteNonQuery(metaCommand); if (ret.IsError) { ret = new InnerServerError(ret); } return(ret); }
public OperationResult UpdateFix(string scode) { OperationResult result = new OperationResult(OperationResultType.Success, "成功执行!"); try { RemoteResult res = null; string msg = RemoteClient.Instance.SendCommandAndGetResult(new byte[] { (byte)SettingType.整体参数 }, CommandConst.读取测量值, 48, scode, out res); result.AppendData = res; return(result); } catch (Exception ex) { result.ResultType = OperationResultType.Error; result.Message = ex.Message; return(result); } }
private void GetUserPlayerCallback(RemoteResult <PlayerEntity[]> result) { if (result.code == 1) { PlayerEntity[] players = result.data; foreach (PlayerEntity player in players) { //显示用户所有角色头像 KeyValuesUpdate kv2 = new KeyValuesUpdate("SetPlayer", player); MessageCenter.instance.SendMessage("ChoosePlayerPanel", kv2); } } else { //提示该用户还没有创建角色 KeyValuesUpdate kv = new KeyValuesUpdate("Tips", result.message); MessageCenter.instance.SendMessage("TipsPanel", kv); } }
public InnerData ReadOperation(InnerData data, out RemoteResult result) { RemoteResult res = null; var ret = SendFunc <InnerData, ICommonNetReceiverWriterForWrite>( api => { var r = api.ReadOperation(data); res = new SuccessResult(); return(r); }, e => { res = new ServerNotAvailable(Server); return(null); }, NetLogHelper.GetLog(data)); result = res; return(ret); }
private void LoginCallback(RemoteResult <UserEntity> result) { if (result.code == 0) { KeyValuesUpdate kv = new KeyValuesUpdate("Error", result.message); MessageCenter.instance.SendMessage("ErrorPanel", kv); } else { KeyValuesUpdate kv = new KeyValuesUpdate("Tips", result.message); MessageCenter.instance.SendMessage("TipsPanel", kv); PanelManager.instance.TogglePanel <LoginPanel>(); PanelManager.instance.TogglePanel <ChoosePlayerPanel>(); PlayerData.instance.userId = result.data.userId; WebUtil.instance.GetUserPlayer(PlayerData.instance.userId, GetUserPlayerCallback); WebUtil.instance.GetEmptyPlayer(delegate(RemoteResult <List <PlayerEntity> > result2) { PlayerData.instance.emptyPlayers = result2.data; }); } }
public HomeViewModel(ISettings settings, ICongress congress, ICurrentCongressionalSession currentSession, INavigationService2 navigationService) : base(navigationService) { _settings = settings; _congress = congress; _currentSession = currentSession; _upcomingBills = new RemoteResult<dynamic>(() => _congress.GetUpcomingBills(), () => RaisePropertiesChanged("UpcomingBills"), null); _legislators = new RemoteResult<dynamic>(() => _congress.FindLegislators(_settings.Location.Lat, _settings.Location.Long), () => RaisePropertiesChanged("Legislators"), null); SelectCommand = new RelayCommand<dynamic>(o => { var vm = new DynamicViewModel(_navigationService, o); string id = o.bioguide_id as string; vm.AppendModel(new Dictionary<string, Func<Task<dynamic>>>() { { "committees", () => _congress.GetCommittees(id) }, { "sponsored_bills", () => _congress.GetBills(id) } }); NavigateTo("LegislatorDetail", vm); }); }