Ejemplo n.º 1
0
        /// <summary>
        /// Button click method to erase a volume
        /// </summary>
        private async void btnClean_Click(object sender, RoutedEventArgs e)
        {
            if (selectedItem != null && Models.Volume.checkDriveType(selectedItem.DriveType))
            {
                resetProgressBar();
                btnClean.IsEnabled           = false;
                btnClean.Visibility          = Visibility.Hidden;
                lbDeleteAlgorithm.Visibility = Visibility.Hidden;
                btnCancel.IsEnabled          = true;
                btnCancel.Visibility         = Visibility.Visible;

                // Clear all content
                lvReport.Items.Add(FindResource("msg_deleteStarted"));
                VolumeController.deleteVolume(selectedItem);
                lvReport.Items.Add(FindResource("msg_deleteEnded"));
                listViewReportScrollDown();

                // Start writing random data
                cts = new CancellationTokenSource();
                try
                {
                    lvReport.Items.Add(FindResource("msg_eraseStarted"));
                    await VolumeController.eraseVolume(cts.Token, selectedItem, algorithm);

                    MessageBox.Show(FindResource("msg_eraseEnded").ToString());
                }
                catch (Exception ex)
                {
                    VolumeController.deleteVolume(selectedItem);
                    lvReport.Items.Add(FindResource("msg_progressStoppedAt").ToString() + lblProgress.Content);
                    MessageBox.Show(ex.Message);
                    resetProgressBar();
                }

                lvReport.Items.Add(FindResource("msg_done"));
                listViewReportScrollDown();
                cts.Cancel();

                btnClean.IsEnabled   = true;
                btnClean.Visibility  = Visibility.Visible;
                btnCancel.IsEnabled  = false;
                btnCancel.Visibility = Visibility.Hidden;
            }
        }