private async void btnDeleteEmails_Click(object sender, RoutedEventArgs e) { if (FolderListItems.FirstOrDefault(x => x.IsSelected) == null) { MessageBox.Show("You should select at least 1 folder."); return; } var totalMessagesToBeDeleted = FolderListItems .Where(x => x.IsSelected) .Select(x => x.TotalFilteredMessages) .Aggregate((a, b) => a + b); var messageBoxResult = MessageBox.Show( $"Do you really want to delete {totalMessagesToBeDeleted} messages that are older than {datePickerDate.SelectedDate.Value.ToShortDateString()}?" , "Are You Sure?" , MessageBoxButton.YesNo , MessageBoxImage.Question , MessageBoxResult.No); if (messageBoxResult == MessageBoxResult.No) { return; } try { buttonDeleteEmails.IsEnabled = false; datePickerDate.IsEnabled = false; using (var client = await ConnectToServerAsync(AppConfig, passwordBox.Password, TaskProgress)) { var selectedFolderListItems = FolderListItems.Where(x => x.IsSelected).ToList(); logMessage($"Start attempt to delete {totalMessagesToBeDeleted} messages."); await DeleteSelectedMessagesAsync(client, selectedFolderListItems, TaskProgress); client.Disconnect(true); logMessage($"Disconnected."); // Update filtered messages btnFilter_Click(sender, e); } } catch (Exception ex) { MessageBox.Show($"Error: {ex.Message}"); logMessage($"Error message: {ex.Message}"); logMessage($"Error stack trace: {ex.StackTrace}"); } finally { buttonDeleteEmails.IsEnabled = true; datePickerDate.IsEnabled = true; } }
private async void btnFilter_Click(object sender, RoutedEventArgs e) { try { buttonFilter.IsEnabled = false; datePickerDate.IsEnabled = false; listViewFolderListItems.IsEnabled = false; using (var client = await ConnectToServerAsync(AppConfig, passwordBox.Password, TaskProgress)) { var folderNames = await GetFolderNamesAsync(client, client.Inbox, TaskProgress); var folderListItems = await GetFolderListItemsAsync(client, folderNames, datePickerDate.SelectedDate.Value, TaskProgress); FolderListItems.Clear(); foreach (var folderListItem in folderListItems) { FolderListItems.Add(folderListItem); } client.Disconnect(true); logMessage($"Disconnected."); } } catch (Exception ex) { MessageBox.Show($"Error: {ex.Message}"); logMessage($"Error message: {ex.Message}"); logMessage($"Error stack trace: {ex.StackTrace}"); } finally { buttonFilter.IsEnabled = true; datePickerDate.IsEnabled = true; listViewFolderListItems.IsEnabled = true; } }