/// <summary>
        /// Performs an action when the button for opening an archive has been tapped.
        /// </summary>
        internal async Task <bool> OpenArchiveButtonAction()
        {
            var picker = PickerFactory.CreateDecompressFileOpenPicker();
            var file   = await picker.PickSingleFileAsync();

            if (file == null)
            {
                return(false);
            }
            ParentPage.Frame.Navigate(typeof(BrowseArchivePage), file);
            return(true);
        }
        /// <summary>
        /// Opens a picker to select a folder and returns it.
        /// May be <code>null</code> on cancellation.
        /// </summary>
        internal async Task <StorageFolder> OutputPathPanelAction()
        {
            var picker = PickerFactory.CreateFolderPicker();

            var folder = await picker.PickSingleFolderAsync();

            if (folder != null) // system has now access to folder
            {
                OutputFolder = folder;
            }
            return(folder);
        }
        /// <summary>
        /// Performs an action when the decompress button has been tapped.
        /// </summary>
        internal async Task <bool> DecompressButtonAction()
        {
            var picker = PickerFactory.CreateDecompressFileOpenPicker();
            var files  = await picker.PickMultipleFilesAsync();

            if (!(files?.Count > 0))
            {
                return(false);
            }
            ParentPage.Frame.Navigate(typeof(DecompressionSummaryPage), ConvertFiles(files));
            return(true);
        }