public static async Task HandleFileSystemPermissionDialog(IWindowTitleBarControlModel windowTitleBar) { string testForFolderOnFS = Path.GetFullPath(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)); SafeWrapper <StorageFolder> testFolderResult = await StorageHelpers.ToStorageItemWithError <StorageFolder>(testForFolderOnFS); if (!testFolderResult) { App.IsInRestrictedAccessMode = true; DialogResult dialogResult = await App.DialogService.ShowDialog(new FileSystemAccessDialogViewModel()); if (dialogResult == DialogResult.Primary) { // Restart the app await CoreApplication.RequestRestartAsync(string.Empty); } else { // Continue in Restricted Access windowTitleBar.IsInRestrictedAccess = true; } } else { return; } }
public static async Task <ReferenceFile> GetFile(StorageFile referenceFile, ReferenceFileData referenceFileData) { if (referenceFileData == null || string.IsNullOrEmpty(referenceFileData.path)) { return(new ReferenceFile(referenceFile, null) { LastError = new SafeWrapperResult(OperationErrorCode.InvalidArgument, new ArgumentNullException(), "The Reference File data is corrupt.") }); } SafeWrapper <StorageFile> file = await StorageHelpers.ToStorageItemWithError <StorageFile>(referenceFileData.path); if (!file) { if (file == OperationErrorCode.NotFound) { // If NotFound, use custom exception for LoadCanvasFromCollection() return(new ReferenceFile(referenceFile, null) { LastError = new SafeWrapperResult(OperationErrorCode.NotFound, new ReferencedFileNotFoundException(), "The file referenced could not be found.") }); } else { return(new ReferenceFile(referenceFile, null) { LastError = (SafeWrapperResult)file }); } } return(new ReferenceFile(referenceFile, file)); }
public BaseViewModel() { SafeWrapper = new SafeWrapper(OnExceptionHandledAsync); IsBusyWrapper = new IsBusyWrapper(); NavigationService = Mvx.IoCProvider.Resolve <IMvxNavigationService>(); Messenger = Mvx.IoCProvider.Resolve <IMvxMessenger>(); Disposables = new CompositeDisposable(); }
public static async Task <SafeWrapper <TOut> > ToStorageItemWithError <TOut>(string path) where TOut : IStorageItem { SafeWrapper <StorageFile> file = null; SafeWrapper <StorageFolder> folder = null; if (string.IsNullOrWhiteSpace(path)) { return(new SafeWrapper <TOut>(default, OperationErrorCode.InvalidArgument, new ArgumentException(), "Provided path is either empty or null."));
public static IEnumerable <SuggestedActionsControlItemViewModel> GetActionsForEmptyCanvasPage(ICanvasPreviewModel pasteCanvasControlModel) { List <SuggestedActionsControlItemViewModel> actions = new List <SuggestedActionsControlItemViewModel>(); var action_paste = new SuggestedActionsControlItemViewModel( new AsyncRelayCommand(async() => { CanvasPreviewControlViewModel.CanvasPasteCancellationTokenSource.Cancel(); CanvasPreviewControlViewModel.CanvasPasteCancellationTokenSource = new CancellationTokenSource(); SafeWrapper <DataPackageView> dataPackage = await ClipboardHelpers.GetClipboardData(); await pasteCanvasControlModel.TryPasteData(dataPackage, CanvasPreviewControlViewModel.CanvasPasteCancellationTokenSource.Token); }), "Paste from clipboard", "\uE77F"); actions.Add(action_paste); return(actions); }
public sealed override Task Initialize() { _ = SafeWrapper.WrapAsync(InitializeAsync); return(Task.CompletedTask); }
public static async Task <SafeWrapper <DataPackageView> > GetClipboardData() { SafeWrapper <DataPackageView> dataPackage = await SafeWrapperRoutines.SafeWrapAsync(() => Task.FromResult(Clipboard.GetContent()), StaticExceptionReporters.DefaultSafeWrapperExceptionReporter); return(dataPackage); }