Beispiel #1
0
        // Обработка файлов
        private void bw_DoWork(object sender, DoWorkEventArgs e)
        {
            ProgressBar.Value = 0;
            int          i            = 0;
            FB2Validator fv2Validator = new FB2Validator();

            switch (m_WorkMode)
            {
            case BooksAutoCorrectModeEnum.SelectedBooks:
                this.Text = string.Format(
                    "Автокорректировка выделенных {0} книг", m_listViewFB2Files.SelectedItems.Count
                    );

                // при пакетной обработке (не прерывать обработку на вылете корректировки, а переходим к обработке следующей книги)
                BooksAutoCorrectProcessingModeEnum AutoCorrectProcessingMode =
                    (m_listViewFB2Files.SelectedItems.Count == 1)
                                                ? BooksAutoCorrectProcessingModeEnum.OneBookProcessing
                                                : BooksAutoCorrectProcessingModeEnum.BatchProcessing;
                foreach (ListViewItem SelectedItem in m_listViewFB2Files.SelectedItems)
                {
                    if ((m_bw.CancellationPending))
                    {
                        e.Cancel = true;
                        return;
                    }
                    // обработка файла
                    WorksWithBooks.autoCorrect(
                        AutoCorrectProcessingMode, SelectedItem, SelectedItem.Text, m_sharpZipLib, m_fv2Validator
                        );
                    m_bw.ReportProgress(++i);
                    ProgressBar.Update();
                }
                break;

            case BooksAutoCorrectModeEnum.CheckedBooks:
                this.Text = string.Format("Автокорректировка помеченных {0} книг", m_listViewFB2Files.CheckedItems.Count);
                // при пакетной обработке (не прерывать обработку на вылете корректировки, а переходим к обработке следующей книги)
                AutoCorrectProcessingMode = (m_listViewFB2Files.CheckedItems.Count == 1)
                                                ? BooksAutoCorrectProcessingModeEnum.OneBookProcessing
                                                : BooksAutoCorrectProcessingModeEnum.BatchProcessing;

                foreach (ListViewItem CheckedItem in m_listViewFB2Files.CheckedItems)
                {
                    if ((m_bw.CancellationPending))
                    {
                        e.Cancel = true;
                        return;
                    }
                    // обработка файла
                    WorksWithBooks.autoCorrect(
                        AutoCorrectProcessingMode, CheckedItem, CheckedItem.Text, m_sharpZipLib, m_fv2Validator
                        );
                    m_bw.ReportProgress(++i);
                }
                break;

            case BooksAutoCorrectModeEnum.BooksInGroup:
                this.Text = string.Format("Автокорректировка {0} книг в Группе", m_listViewFB2Files.SelectedItems[0].Group.Items.Count);
                foreach (ListViewItem Item in m_listViewFB2Files.SelectedItems[0].Group.Items)
                {
                    if ((m_bw.CancellationPending))
                    {
                        e.Cancel = true;
                        return;
                    }
                    // обработка файла
                    WorksWithBooks.autoCorrect(
                        BooksAutoCorrectProcessingModeEnum.BatchProcessing, Item, Item.Text, m_sharpZipLib, m_fv2Validator
                        );
                    m_bw.ReportProgress(++i);
                    ProgressBar.Update();
                }
                break;

            case BooksAutoCorrectModeEnum.BooksInAllGroup:
                this.Text = string.Format("Автокорректировка {0} книг во всех Группах", m_listViewFB2Files.Items.Count);
                foreach (ListViewItem Item in m_listViewFB2Files.Items)
                {
                    if ((m_bw.CancellationPending))
                    {
                        e.Cancel = true;
                        return;
                    }
                    // обработка файла
                    WorksWithBooks.autoCorrect(
                        BooksAutoCorrectProcessingModeEnum.BatchProcessing, Item, Item.Text, m_sharpZipLib, m_fv2Validator
                        );
                    m_bw.ReportProgress(++i);
                    ProgressBar.Update();
                }
                break;

            default:
                return;
            }

            if ((m_bw.CancellationPending))
            {
                e.Cancel = true;
                return;
            }
        }
        // Обработка файлов
        private void bw_DoWork(object sender, DoWorkEventArgs e)
        {
            ProgressBar.Value = 0;
            int          i            = 0;
            FB2Validator fv2Validator = new FB2Validator();

            switch (m_WorkMode)
            {
            case BooksAutoCorrectModeEnum.SelectedBooks:
                this.Text = string.Format("Автокорректировка выделенных {0} книг", m_listViewFB2Files.SelectedItems.Count);
                foreach (ListViewItem SelectedItem in m_listViewFB2Files.SelectedItems)
                {
                    if ((m_bw.CancellationPending))
                    {
                        e.Cancel = true;
                        return;
                    }
                    // обработка файла
                    WorksWithBooks.autoCorrect(
                        SelectedItem, SelectedItem.Text,
                        m_listViewFB2Files.SelectedItems.Count == 1 ? true : false,
                        m_sharpZipLib, m_fv2Validator
                        );
                    m_bw.ReportProgress(++i);
                }
                break;

            case BooksAutoCorrectModeEnum.CheckedBooks:
                this.Text = string.Format("Автокорректировка помеченных {0} книг", m_listViewFB2Files.CheckedItems.Count);
                foreach (ListViewItem CheckedItem in m_listViewFB2Files.CheckedItems)
                {
                    if ((m_bw.CancellationPending))
                    {
                        e.Cancel = true;
                        return;
                    }
                    // обработка файла
                    WorksWithBooks.autoCorrect(
                        CheckedItem, CheckedItem.Text,
                        m_listViewFB2Files.CheckedItems.Count == 1 ? true : false,
                        m_sharpZipLib, m_fv2Validator
                        );
                    m_bw.ReportProgress(++i);
                }
                break;

            case BooksAutoCorrectModeEnum.BooksInGroup:
                this.Text = string.Format("Автокорректировка {0} книг в Группе", m_listViewFB2Files.SelectedItems[0].Group.Items.Count);
                foreach (ListViewItem Item in m_listViewFB2Files.SelectedItems[0].Group.Items)
                {
                    if ((m_bw.CancellationPending))
                    {
                        e.Cancel = true;
                        return;
                    }
                    // обработка файла
                    WorksWithBooks.autoCorrect(Item, Item.Text, false, m_sharpZipLib, m_fv2Validator);
                    m_bw.ReportProgress(++i);
                }
                break;

            case BooksAutoCorrectModeEnum.BooksInAllGroup:
                this.Text = string.Format("Автокорректировка {0} книг во всех Группах", m_listViewFB2Files.Items.Count);
                foreach (ListViewItem Item in m_listViewFB2Files.Items)
                {
                    if ((m_bw.CancellationPending))
                    {
                        e.Cancel = true;
                        return;
                    }
                    // обработка файла
                    WorksWithBooks.autoCorrect(Item, Item.Text, false, m_sharpZipLib, m_fv2Validator);
                    m_bw.ReportProgress(++i);
                }
                break;

            default:
                return;
            }

            if ((m_bw.CancellationPending))
            {
                e.Cancel = true;
                return;
            }
        }