コード例 #1
0
        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;
            }
        }
コード例 #2
0
        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));
        }
コード例 #3
0
 public BaseViewModel()
 {
     SafeWrapper       = new SafeWrapper(OnExceptionHandledAsync);
     IsBusyWrapper     = new IsBusyWrapper();
     NavigationService = Mvx.IoCProvider.Resolve <IMvxNavigationService>();
     Messenger         = Mvx.IoCProvider.Resolve <IMvxMessenger>();
     Disposables       = new CompositeDisposable();
 }
コード例 #4
0
        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."));
コード例 #5
0
        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);
        }
コード例 #6
0
 public sealed override Task Initialize()
 {
     _ = SafeWrapper.WrapAsync(InitializeAsync);
     return(Task.CompletedTask);
 }
コード例 #7
0
        public static async Task <SafeWrapper <DataPackageView> > GetClipboardData()
        {
            SafeWrapper <DataPackageView> dataPackage = await SafeWrapperRoutines.SafeWrapAsync(() => Task.FromResult(Clipboard.GetContent()), StaticExceptionReporters.DefaultSafeWrapperExceptionReporter);

            return(dataPackage);
        }