private async Task NavigateBackAsync() { if (_currentFolder != null) { Services.OneDrive.OneDriveStorageFolder currentFolder = null; Shell.Current.DisplayWaitRing = true; try { if (!string.IsNullOrEmpty(_currentFolder.Path)) { currentFolder = await _rootFolder.GetFolderAsync(_currentFolder.Path); } else { currentFolder = _rootFolder; } OneDriveItemsList.ItemsSource = currentFolder.GetItemsAsync(); _currentFolder = currentFolder; } catch (ServiceException ex) { await OneDriveSampleHelpers.DisplayOneDriveServiceExceptionAsync(ex); } finally { Shell.Current.DisplayWaitRing = false; } } }
/// <summary> /// Upload large file. /// </summary> /// <param name="folder">The destination folder</param> /// <returns>Task to support await of async call.</returns> public static async Task UploadLargeFileAsync(Services.OneDrive.OneDriveStorageFolder folder) { try { if (folder != null) { var selectedFile = await OpenLocalFileAsync(); if (selectedFile != null) { using (var localStream = await selectedFile.OpenReadAsync()) { Shell.Current.DisplayWaitRing = true; // If the file exceed the Maximum size (ie 4MB) var largeFileCreated = await folder.UploadFileAsync(selectedFile.Name, localStream, CreationCollisionOption.GenerateUniqueName, 320 * 1024); } } } } catch (OperationCanceledException ex) { await OneDriveSampleHelpers.DisplayMessageAsync(ex.Message); } catch (ServiceException graphEx) { await OneDriveSampleHelpers.DisplayMessageAsync(graphEx.Error.Message); } catch (Exception ex) { await OneDriveSampleHelpers.DisplayMessageAsync(ex.Message); TrackingManager.TrackException(ex); } finally { Shell.Current.DisplayWaitRing = false; } }
/// <summary> /// Create a new folder in the current folder /// </summary> /// <param name="folder">Destination folder where to create the new folder</param> /// <returns>Task to support await of async call.</returns> public static async Task NewFolderAsync(Services.OneDrive.OneDriveStorageFolder folder) { if (folder != null) { Shell.Current.DisplayWaitRing = true; try { string newFolderName = await OneDriveSampleHelpers.InputTextDialogAsync("New Folder Name"); if (!string.IsNullOrEmpty(newFolderName)) { await folder.CreateFolderAsync(newFolderName); } } catch (ServiceException ex) { await OneDriveSampleHelpers.DisplayOneDriveServiceExceptionAsync(ex); } finally { Shell.Current.DisplayWaitRing = false; } } }
public static async Task <Services.OneDrive.OneDriveStorageFolder> OpenFolderPicker(string title, Services.OneDrive.OneDriveStorageFolder rootFolder) { FoldersPickerControl folderPicker = new FoldersPickerControl(await rootFolder.GetFoldersAsync(100), rootFolder); ContentDialog dialog = new ContentDialog { Content = folderPicker, Title = title, PrimaryButtonText = "Ok" }; if (await dialog.ShowAsync() == ContentDialogResult.Primary) { return(folderPicker.SelectedFolder); } else { return(null); } }
public static async Task MoveToAsync(Services.OneDrive.OneDriveStorageItem item, Services.OneDrive.OneDriveStorageFolder rootFolder) { Shell.Current.DisplayWaitRing = true; try { var folder = await OneDriveSampleHelpers.OpenFolderPicker("Move to", rootFolder); if (folder != null) { await item.MoveAsync(folder); } } catch (ServiceException exService) { await OneDriveSampleHelpers.DisplayOneDriveServiceExceptionAsync(exService); } catch (Exception ex) { await OneDriveSampleHelpers.DisplayMessageAsync(ex.Message); TrackingManager.TrackException(ex); } finally { Shell.Current.DisplayWaitRing = false; } }