public async void ExecuteArchiveCommand(object parameter) { try { using (var folderBrowserDialog = new WinForms.FolderBrowserDialog()) { if (folderBrowserDialog.ShowDialog() == WinForms.DialogResult.OK) { _archiveFolderPath = folderBrowserDialog.SelectedPath; } } OnPropertyChanged("ArchiveFolderPath"); WinForms.MessageBox.Show("Select where to save the file"); IFolderReader folderReader = new FolderReader(); string fileName = ""; using (var fileDialog = new WinForms.SaveFileDialog()) { if (fileDialog.ShowDialog() == WinForms.DialogResult.OK) { fileName = string.Concat(fileDialog.FileName, ".dat"); } } Task <bool> t = Task <bool> .Run(() => { try { Folder folder = folderReader.GetFolders(_archiveFolderPath); var fbs = new FolderBinarySerializer(); if (fbs.Serialize(folder, fileName)) { WinForms.MessageBox.Show($"Folder : {_archiveFolderPath} was archivated successfully to file : {fileName}", "Archive info", WinForms.MessageBoxButtons.OK, WinForms.MessageBoxIcon.Information); } } catch (Exception ex) { throw ex; } return(true); }); await Task.WhenAll(t); } catch (Exception ex) { WinForms.MessageBox.Show($"Error in {ex.TargetSite}. \nError message : {ex.Message}", "Error!", WinForms.MessageBoxButtons.OK, WinForms.MessageBoxIcon.Error); } }
public async void ExecuteUnarchiveCommand(object parameter) { try { using (var fileDialog = new WinForms.OpenFileDialog()) { if (fileDialog.ShowDialog() == WinForms.DialogResult.OK) { _archiveFolderPath = fileDialog.FileName; } } OnPropertyChanged("ArchiveFolderPath"); WinForms.MessageBox.Show("Select where to unarchive the file"); string folderName = ""; using (var folderBrowserDialog = new WinForms.FolderBrowserDialog()) { if (folderBrowserDialog.ShowDialog() == WinForms.DialogResult.OK) { folderName = folderBrowserDialog.SelectedPath; } } Task <bool> t = Task <bool> .Run(() => { var fbs = new FolderBinarySerializer(); Folder newFolder = (Folder)fbs.Deserialize(_archiveFolderPath); var folderWriter = new FolderWriter(); if (folderWriter.WriteFolder(newFolder, folderName)) { WinForms.MessageBox.Show($"Folder {newFolder.Name} was unarchivated from file {_archiveFolderPath}", "Unarchive info", WinForms.MessageBoxButtons.OK, WinForms.MessageBoxIcon.Information); } return(true); }); await Task.WhenAll(t); } catch (Exception ex) { WinForms.MessageBox.Show($"Error in {ex.TargetSite}. \nError message : {ex.Message}", "Error!", WinForms.MessageBoxButtons.OK, WinForms.MessageBoxIcon.Error); } }