private async void BtnImportFromDocLibTapped(object sender, Windows.UI.Xaml.Input.TappedRoutedEventArgs e) { CloseAppBar(); var fromFolder = await FileSystemUtils.PromptForFolder("Select folder to import from"); if (fromFolder == null) { return; } var repository = new SnippetRepository(); repository.LengthyOpStarting += (x, args) => { ProgressRingSnippets.IsActive = true; }; repository.LengthyOpHasEnded += (x, args) => { ProgressRingSnippets.IsActive = false; }; var nFilesImported = await repository.ImportAllSnippetsFromDocumentsLibrary(fromFolder); var msg = nFilesImported == -1 ? "An error occurred during snippet import. The process did not complete successfully" : nFilesImported.ToString() + " snippets imported into the local snippet data store"; var dlg = new MessageDialog(msg); await dlg.ShowAsync(); // Goto the root of the library and refresh FileSystemUserControl.GotoRootFolder(); }
private async void BtnDelFolderTapped(object sender, Windows.UI.Xaml.Input.TappedRoutedEventArgs e) { CloseAppBar(); var tmpCurrentSnippetPath = CurrentSnippetPath; if (tmpCurrentSnippetPath.EndsWith("\\")) { tmpCurrentSnippetPath = tmpCurrentSnippetPath.TrimEnd('\\'); } if (String.Compare(tmpCurrentSnippetPath, App.RootSnippetPath, StringComparison.Ordinal) == 0) { var notAllowedDlg = new MessageDialog("You cannot delete the root of the snippet library"); await notAllowedDlg.ShowAsync(); return; } var msg = "Delete the folder \"" + FileSystemUtils.GetLocalDataStoreRelativeSnippetRootPath(CurrentSnippetPath) + "\" (and all files and folders contained in it) - are you sure?"; var dlg = new MessageDialog(msg); dlg.Commands.Add(new UICommand("Yes")); dlg.Commands.Add(new UICommand("No")); var answer = await dlg.ShowAsync(); if (String.Compare(answer.Label, "No", StringComparison.Ordinal) == 0) { return; } bool folderRemoved; try { var folderToDelete = await StorageFolder.GetFolderFromPathAsync(CurrentSnippetPath); await folderToDelete.DeleteAsync(StorageDeleteOption.Default); // Delete to the recycle bin FileSystemUserControl.GotoParentFolder(); // Go up one level folderRemoved = true; } catch { folderRemoved = false; } if (folderRemoved) { return; } dlg = new MessageDialog("Unable to remove folder"); await dlg.ShowAsync(); }
protected async override void LoadState(Object navigationParameter, Dictionary <String, Object> pageState) { try { // Setup the required root and current folders SetFolderDefaults(); // Hook into visual state changes so we can reflect changes to our user control ApplicationViewStates.CurrentStateChanged += ApplicationViewStatesOnCurrentStateChanged; // Do we need to install some samples (is the library empty)? var folders = await FileSystemUtils.GetAllFoldersAsync(RootSnippetPath); if (folders == null || folders.Count == 0) { await InstallSampleSnippets(); } if (navigationParameter != null) { // Page was opened to do a search BtnClearSearch.Visibility = Visibility.Visible; var searchItem = navigationParameter.ToString(); bool searchFromCurrentFolder = true; if (ApplicationData.Current.RoamingSettings.Values.ContainsKey("SearchFromCurrentFolder")) { searchFromCurrentFolder = (bool)ApplicationData.Current.RoamingSettings.Values["SearchFromCurrentFolder"]; } FileSystemUserControl.DoSnippetQuery(searchFromCurrentFolder ? CurrentSnippetPath : RootSnippetPath, searchItem); } else { BtnClearSearch.Visibility = Visibility.Collapsed; if (!string.IsNullOrEmpty(CurrentSnippetPath)) { FileSystemUserControl.CurrentSnippetFolder = CurrentSnippetPath; } FileSystemUserControl.QueryResults = string.Empty; } } catch { } // Hook into our user control's SnippetSelected event so we can navigate to a new page to display info on the snippet FileSystemUserControl.SnippetSelected += (sender, args) => { try { if (!(args is SnippetSelectedEventArgs)) { return; } var selectedSnippetArgs = args as SnippetSelectedEventArgs; if (selectedSnippetArgs == null) { return; } var selectedSnippet = selectedSnippetArgs.Snippet; Frame.Navigate(typeof(SnippetPage), selectedSnippet.Path); } catch { } }; // Hook into the user control's FolderChanged event FileSystemUserControl.FolderChanged += (sender, args) => { if (args == null) { return; } var folderChangedArgs = args as FolderChangedEventArgs; if (folderChangedArgs == null || string.IsNullOrEmpty(folderChangedArgs.SelectedPath)) { return; } CurrentSnippetPath = folderChangedArgs.SelectedPath; }; }
private void ApplicationViewStatesOnCurrentStateChanged(object sender, VisualStateChangedEventArgs visualStateChangedEventArgs) { // Tell the custom control to change appearance for the new visual state FileSystemUserControl.SetVisualState(visualStateChangedEventArgs.NewState.Name); }