Beispiel #1
0
        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;
            }
        }
Beispiel #2
0
        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;
            }
        }