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!"; } }
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!"; } }