コード例 #1
0
        void OnLoggedIn(dynamic result)
        {
            if (result["Result"].ToObject <bool>())
            {
                m_ServerStatusMetadataSource = result["ServerMetadataSource"].ToObject <List <KeyValuePair <string, StatusInfoAttribute[]> > >();

                BuildGridColumns(
                    m_ServerStatusMetadataSource.FirstOrDefault(p => string.IsNullOrEmpty(p.Key)).Value,
                    GetCommonColumns(m_ServerStatusMetadataSource.Where(p => !string.IsNullOrEmpty(p.Key)).Select(c => c.Value).ToArray()));

                var nodeInfo = DynamicViewModelFactory.Create(result["NodeStatus"].ToString());

                GlobalInfo = nodeInfo.BootstrapStatus;

                var instances = nodeInfo.InstancesStatus as IEnumerable <DynamicViewModel.DynamicViewModel>;
                Instances = new ObservableCollection <DynamicViewModel.DynamicViewModel>(instances.Select(i =>
                {
                    var startCommand   = new DelegateCommand <DynamicViewModel.DynamicViewModel>(ExecuteStartCommand, CanExecuteStartCommand);
                    var stopCommand    = new DelegateCommand <DynamicViewModel.DynamicViewModel>(ExecuteStopCommand, CanExecuteStopCommand);
                    var restartCommand = new DelegateCommand <DynamicViewModel.DynamicViewModel>(ExecuteRestartCommand, CanExecuteRestartCommand);

                    i.PropertyChanged += (s, e) =>
                    {
                        if (string.IsNullOrEmpty(e.PropertyName) ||
                            e.PropertyName.Equals("IsRunning", StringComparison.OrdinalIgnoreCase))
                        {
                            startCommand.RaiseCanExecuteChanged();
                            stopCommand.RaiseCanExecuteChanged();
                            restartCommand.RaiseCanExecuteChanged();
                        }
                    };

                    i.Set("StartCommand", startCommand);
                    i.Set("StopCommand", stopCommand);
                    i.Set("RestartCommand", restartCommand);

                    return(i);
                }));
                State           = NodeState.Connected;
                LastUpdatedTime = DateTime.Now;
            }
            else
            {
                m_LoginFailed = true;
                //login failed
                m_WebSocket.Close();
                ErrorMessage = "Logged in failed!";
            }
        }
コード例 #2
0
        void OnLoggedIn(dynamic result)
        {
            if (result["Result"].ToObject <bool>())
            {
                m_FieldMetadatas = result["FieldMetadatas"].ToObject <StateFieldMetadata[]>();
                var nodeInfo = DynamicViewModelFactory.Create(result["NodeInfo"].ToString());
                BuildGridColumns(m_FieldMetadatas);
                GlobalInfo = nodeInfo.GlobalInfo;
                var instances = nodeInfo.Instances as IEnumerable <DynamicViewModel.DynamicViewModel>;
                Instances = new ObservableCollection <DynamicViewModel.DynamicViewModel>(instances.Select(i =>
                {
                    var startCommand = new DelegateCommand <DynamicViewModel.DynamicViewModel>(ExecuteStartCommand, CanExecuteStartCommand);
                    var stopCommand  = new DelegateCommand <DynamicViewModel.DynamicViewModel>(ExecuteStopCommand, CanExecuteStopCommand);

                    i.PropertyChanged += (s, e) =>
                    {
                        if (string.IsNullOrEmpty(e.PropertyName) ||
                            e.PropertyName.Equals("IsRunning", StringComparison.OrdinalIgnoreCase))
                        {
                            startCommand.RaiseCanExecuteChanged();
                            stopCommand.RaiseCanExecuteChanged();
                        }
                    };

                    i.Set("StartCommand", startCommand);
                    i.Set("StopCommand", stopCommand);

                    return(i);
                }));
                State           = NodeState.Connected;
                LastUpdatedTime = DateTime.Now;
            }
            else
            {
                m_LoginFailed = true;
                //login failed
                m_WebSocket.Close();
                ErrorMessage = "Logged in failed!";
            }
        }
コード例 #3
0
        void OnServerUpdated(string result)
        {
            dynamic nodeInfo = DynamicViewModelFactory.Create(result);

            Dispatcher.BeginInvoke((Action <dynamic>)OnServerUpdated, nodeInfo);
        }