コード例 #1
0
        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);
        }
コード例 #2
0
ファイル: DeviceApiService.cs プロジェクト: depweili/grjkweb
        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);
            }
        }
コード例 #3
0
        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
                });
            }
        }
コード例 #4
0
        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);
        }
コード例 #5
0
ファイル: DeviceApiService.cs プロジェクト: depweili/grjkweb
        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);
            }
        }
コード例 #6
0
ファイル: DeviceApiService.cs プロジェクト: depweili/grjkweb
        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);
            }
        }
コード例 #7
0
ファイル: PlayerData.cs プロジェクト: luodongfu/Dungeon
 private void SaveGameCallback(RemoteResult <PlayerEntity> result)
 {
     if (result.data != null)
     {
         Debug.Log(result.data.playerId);
     }
 }
コード例 #8
0
ファイル: WebForm1.aspx.cs プロジェクト: depweili/grjkweb
        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);
            }
        }
コード例 #9
0
ファイル: DeviceApiService.cs プロジェクト: depweili/grjkweb
        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);
            }
        }
コード例 #10
0
 public static RequestState GetStatefromRemoteResult(RemoteResult result)
 {
     if(result.IsError)
         return RequestState.Error;
     
     return RequestState.Complete;
 }
コード例 #11
0
        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);
        }
コード例 #12
0
        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);
        }
コード例 #13
0
ファイル: DeviceApiService.cs プロジェクト: depweili/grjkweb
        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);
            }
        }
コード例 #14
0
ファイル: SceneMgr.cs プロジェクト: luodongfu/Dungeon
 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);
     }
 }
コード例 #15
0
ファイル: DeviceApiService.cs プロジェクト: depweili/grjkweb
        public dynamic DealCommandResult(RemoteResult res, dynamic clientdata = null)
        {
            dynamic resobj = null;

            //var service = new DeviceService();

            resobj = DeviceService.DealCommandResult(res, clientdata);

            return(resobj);
        }
コード例 #16
0
        public byte[] SerializeResult(RemoteResult remoteResult)
        {
            var stream     = new MemoryStream();
            var serializer = new XmlSerializer(typeof(RemoteResult));

            serializer.Serialize(stream, remoteResult);

            stream.Flush();
            return(stream.GetBuffer());
        }
コード例 #17
0
ファイル: DeviceApiService.cs プロジェクト: depweili/grjkweb
        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);
            }
        }
コード例 #18
0
ファイル: DeviceApiService.cs プロジェクト: depweili/grjkweb
        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);
            }
        }
コード例 #19
0
ファイル: DeviceApiService.cs プロジェクト: depweili/grjkweb
        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);
            }
        }
コード例 #20
0
        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));
        }
コード例 #21
0
        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);
        }
コード例 #22
0
 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);
     }
 }
コード例 #23
0
 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();
     }
 }
コード例 #24
0
 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);
     }
 }
コード例 #25
0
        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);
        }
コード例 #26
0
        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());
        }
コード例 #27
0
        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);
        }
コード例 #28
0
ファイル: DeviceApiService.cs プロジェクト: depweili/grjkweb
        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);
            }
        }
コード例 #29
0
 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);
     }
 }
コード例 #30
0
        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);
        }
コード例 #31
0
 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;
         });
     }
 }
コード例 #32
0
ファイル: HomeViewModel.cs プロジェクト: dkackman/Sunlight
        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);
            });
        }