private async void SearchExecute() { await RunAsyncMethod(() => { System.Windows.Application.Current.Dispatcher.Invoke(() => FoldersToDelete.Clear()); var folders = _steamFolderService.Search(FoldersToSearch.ToList()).OrderBy(x => x.Path); System.Windows.Application.Current.Dispatcher.Invoke(() => FoldersToDelete.AddRange(folders)); }); }
private async void DeletePackagesExecute() { await RunAsyncMethod(() => { var itemsToDelete = FoldersToDelete.Where(x => x.Selected).ToList(); if (!itemsToDelete.Any()) { FlexibleMessageBox.Show("You must select some files or folders to delete!", "No files or folders to delete.", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } var deletedFolders = _steamFolderService.Delete(itemsToDelete); if (!deletedFolders.Any()) { FlexibleMessageBox.Show("None of your selected items were deleted!", "No files or folders deleted.", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } var totalSaved = 0L; var builder = new StringBuilder("Files/Folders deleted:\r\n\r\n"); deletedFolders.ForEach(x => { System.Windows.Application.Current.Dispatcher.Invoke(() => FoldersToDelete.Remove(x)); totalSaved += x.SizeInBytes; builder.AppendLine(x.Path); }); var size = _sizeService.GetDisplaySize(totalSaved); FlexibleMessageBox.Show($"You saved {size}!\r\n\r\n{builder}", "Files or folders were deleted.", MessageBoxButtons.OK, MessageBoxIcon.Information); }); }
private bool CanDeletePackages() { return(CanUseControls && FoldersToDelete.Any() && FoldersToDelete.Any(x => x.Selected)); }