Example #1
0
        //Invoked by "BatchExtract".
        public void BatchExtract(string indexString, string folderPath, NamingInfo namingInfo)
        {
            progressBar.Visibility = Visibility.Visible;
            progressBar.Value      = 0;
            PBSetValue(5);

            XmlDocument smryXml     = GetRightSummaryXml();
            XmlNodeList summaryList = smryXml.GetElementsByTagName("Summary");

            PBSetValue(20);

            //Create file name ArrayList by users selected naming method.
            ArrayList fileNames = new ArrayList();

            switch (namingInfo.namingMethod)
            {
            case NamingMethod.Enumerate:
                for (int i = 1; i <= summaryList.Count; i++)
                {
                    fileNames.Add(i.ToString());
                }
                break;

            case NamingMethod.Origin:
                for (int i = 0; i < summaryList.Count; i++)
                {
                    fileNames.Add(System.IO.Path.GetFileNameWithoutExtension(((XmlElement)summaryList[i]).GetAttribute("path")));
                }
                break;

            case NamingMethod.Att:
                foreach (WrapPanel tempWrap in listBox.Items)
                {
                    string contentString = (tempWrap.Children[1] as TextBlock).Text;

                    fileNames.Add(System.IO.Path.GetFileNameWithoutExtension(contentString.Substring("Content= \"".Count(), contentString.Count() - "Content= \"".Count()).TrimEnd('\"')));
                }
                break;

            case NamingMethod.Index:
                fileNames.Add(new string[1] {
                    namingInfo.indexString
                });
                break;
            }
            PBSetValue(40);

            extractInfo eInfo = new extractInfo(ref smryXml, indexString, fileNames, folderPath);

            AttachmentExtractor.Extract(eInfo);

            PBSetValue(100);

            progressBar.Visibility = Visibility.Hidden;
        }
        private void okButton_Click(object sender, MouseButtonEventArgs e)
        {
            if (folderPath != "")
            {
                if (MessageBox.Show("Click \"OK\" to Extract.\r\n" + "Please check the Information again.", "BatchExtract", MessageBoxButton.OKCancel, MessageBoxImage.Information) == MessageBoxResult.OK)
                {
                    ((sender as Label).Parent as Border).Opacity = 0.5;

                    NamingInfo namingInfo = new NamingInfo();
                    if (enumerateRadio.IsChecked == true)
                    {
                        namingInfo = new NamingInfo(NamingMethod.Enumerate);
                    }
                    else if (originRadio.IsChecked == true)
                    {
                        namingInfo = new NamingInfo(NamingMethod.Origin);
                    }
                    else if (attRadio.IsChecked == true)
                    {
                        namingInfo = new NamingInfo(NamingMethod.Att);
                    }
                    else if (indexRadio.IsChecked == true)
                    {
                        if (nblockIndexTextbox.Text != "" && nitemIndexTextbox.Text != "")
                        {
                            namingInfo = new NamingInfo("\"" + nblockIndexTextbox.Text + "," + nitemIndexTextbox.Text + "\"");
                        }
                        else
                        {
                            MessageBox.Show("Please input an Index.", "Batch Extract", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                            return;
                        }
                    }

                    (this.Owner as MainWindow).BatchExtract("\"" + blockIndexTextbox.Text + "," + itemIndexTextbox.Text + "\"", folderPath, namingInfo);
                    this.Close();
                }
            }
            else
            {
                MessageBox.Show("Please select a Folder.", "Batch Extract", MessageBoxButton.OK, MessageBoxImage.Exclamation);
            }
        }