private void HandleControllerUpdate(Controller controller) { MasterDetailViewModel root = MasterTree.FirstOrDefault(); if (root == null) { return; } root.Update(controller); }
/// <summary> /// Called when deactivating. /// </summary> /// <param name="close">Inidicates whether this instance will be closed.</param> protected async override void OnDeactivate(bool close) { if (!close && MasterTree.Any(vm => vm.HasControllerInMode(Controller.Mode.Manual))) { if (_askUser.AskYesOrNoQuestion(context: "There are controllers in Manual mode", question: "Set all controllers to Auto mode?")) { await _informationProvider.SetAllControllersToMode(_moduleName, Controller.Mode.Auto); } } if (_selectedItem != null) { _informationProvider.UnsubscribeFromControllerChanges(_moduleName, _selectedItem.Id, HandleControllerUpdate); } await SafeExecute(() => _informationProvider.UnsubscribeFromTreeUpdate(_moduleName, HandleControllerUpdate)); }
/// <summary> /// Loads the root controller of this module. /// </summary> public async Task LoadRootController() { _states.ChangeToLoadingState(); await SafeExecute(async() => { var controller = await _informationProvider.LoadRootController(_moduleName); var viewModel = CreateMasterDetailViewModel(controller, _controllerCommander, _moduleName); _masterTree.Clear(); _masterTree.Add(viewModel); if (SelectedItem == null) { SelectedItem = MasterTree.FirstOrDefault(); } UpdateControllerPermissions(_masterTree.FirstOrDefault()); UpdateControllerDisplayName(_masterTree.FirstOrDefault()); _states.ChangeToContentState(); }); }