private void StartWatchCommandExecute(object obj) { var node = obj as DirectoryModel; this.ReinitializeToken(); Task.Run(async() => { while (true) { if (Token.IsCancellationRequested) { return; } if (!DirectoryService.CheckDirectory(node.FullName)) { if (Messenger.Go("Root folder was changed or deleted, clear the tree to load a new directory?", "Directory not found", MessageBoxButton.OKCancel, MessageBoxImage.Question, MessageBoxResult.OK) == MessageBoxResult.OK) { Application.Current.Dispatcher.Invoke(() => Directory = null); base.OnPropertyChanged(nameof(SelfDirectory)); LoadFlag = true; WatcherFlag = false; } else { Messenger.Go("чтобы загрузить новую директория - очистите дерево", "Message"); } return; } var transfer_directory = await DirectoryService.GetDirectory(node.FullName); var model_directory = await ConversionService.ConvertToModel(transfer_directory); Application.Current.Dispatcher.Invoke(() => Watcher.Check(node, model_directory)); } }, Token); }
private async void LungeCommandExecute(object obj) { var node = obj as DirectoryModel; node.IsExpanded = true; var transfer_directory = await ConversionService.ConvertToTransfer(node); var childs = await DirectoryService.AddDirectoriesToRoot(transfer_directory); await Application.Current.Dispatcher.Invoke(async() => { foreach (var child in childs) { var directory = await ConversionService.ConvertToModel(child); node.Directories.Add(directory); } }); base.OnPropertyChanged(nameof(SelfDirectory)); node.IsExpanded = false; }
private async void LoadCommandExecute(object obj) { if (Dialog.OpenFolder()) { CurrentPath = Dialog.DirectoryPath; var transfer_directory = await DirectoryService.GetPartDirectory(Dialog.DirectoryPath); await Application.Current.Dispatcher.Invoke(async() => Directory = await ConversionService.ConvertToModel(transfer_directory)); base.OnPropertyChanged(nameof(SelfDirectory)); LoadFlag = false; WatcherFlag = true; } }