コード例 #1
0
ファイル: MainForm.cs プロジェクト: sleepingwit/jal123
        private ExportSvnParameters ExportZentaoBug(string svnRepository, string targetDirectory)
        {
            var bugs = new List <int>();

            foreach (var rawBug in txtZentaoBug.Lines)
            {
                if (string.IsNullOrWhiteSpace(rawBug))
                {
                    continue;
                }

                var rawBugs = rawBug.Split(',');
                foreach (var raw in rawBugs)
                {
                    if (!int.TryParse(raw.Trim(), out var bug))
                    {
                        MessageBox.Show(string.Format("{0} 不是有效的数字", rawBug.Trim()), "错误", MessageBoxButtons.OK);
                        return(null);
                    }

                    bugs.Add(bug);
                }
            }

            if (bugs.Count <= 0)
            {
                MessageBox.Show("没有输入禅道Bug号", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return(null);
            }

            var bugExporter = new ZentaoDbBugRevisionExporter();
            var bugNumbers  = bugExporter.Export(bugs);

            var filter = new HashSet <uint>();

            foreach (var rawBugNumber in bugNumbers)
            {
                if (!filter.Contains(rawBugNumber))
                {
                    filter.Add(rawBugNumber);
                }
            }

            var svnRoot    = new Uri(svnRepository);
            var parameters = new ExportSvnParameters
            {
                Numbers         = new List <uint>(filter),
                SvnRepository   = svnRoot,
                TargetDirectory = targetDirectory
            };

            return(parameters);
        }
コード例 #2
0
ファイル: MainForm.cs プロジェクト: sleepingwit/jal123
        private ExportSvnParameters ExportSvnDirectly(string svnRepository, string targetDirectory)
        {
            var numbers = new List <uint>();

            foreach (var rawNumber in txtNumbers.Lines)
            {
                if (string.IsNullOrWhiteSpace(rawNumber))
                {
                    continue;
                }

                var rawNumbers = rawNumber.Split(',');
                foreach (var raw in rawNumbers)
                {
                    if (!uint.TryParse(raw.Trim(), out var number))
                    {
                        MessageBox.Show(string.Format("{0} 不是有效的数字", rawNumber.Trim()), "错误", MessageBoxButtons.OK);
                        return(null);
                    }

                    numbers.Add(number);
                }
            }

            if (numbers.Count <= 0)
            {
                MessageBox.Show("没有输入版本号", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return(null);
            }

            var svnRoot = new Uri(svnRepository);

            var parameters = new ExportSvnParameters
            {
                Numbers         = numbers,
                SvnRepository   = svnRoot,
                TargetDirectory = targetDirectory
            };

            return(parameters);
        }
コード例 #3
0
ファイル: MainForm.cs プロジェクト: sleepingwit/jal123
        private ExportSvnParameters ExportZentaoBuild(string svnRepository, string targetDirectory)
        {
            var data = cbxZentaoBuild.SelectedItem as ZentaoBuildData;

            if (data == null)
            {
                return(null);
            }

            var rawNumbers = new List <uint>();

            var storyExporter = new ZentaoDbStoryRevisionExporter();
            var storyNumbers  = storyExporter.Export(data.Stories);

            rawNumbers.AddRange(storyNumbers);

            var bugExporter = new ZentaoDbBugRevisionExporter();
            var bugNumbers  = bugExporter.Export(data.Bugs);

            rawNumbers.AddRange(bugNumbers);

            var filter = new HashSet <uint>();

            foreach (var rawNumber in rawNumbers)
            {
                if (!filter.Contains(rawNumber))
                {
                    filter.Add(rawNumber);
                }
            }

            var svnRoot    = new Uri(svnRepository);
            var parameters = new ExportSvnParameters
            {
                Numbers         = new List <uint>(filter),
                SvnRepository   = svnRoot,
                TargetDirectory = targetDirectory
            };

            return(parameters);
        }
コード例 #4
0
ファイル: MainForm.cs プロジェクト: sleepingwit/jal123
        private void btnExport_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrWhiteSpace(cbxSvnRepository.Text))
            {
                errorProvider.SetError(cbxSvnRepository, "SVN 根路径不能为空");
                return;
            }

            if (string.IsNullOrWhiteSpace(txtTargetDirectory.Text))
            {
                errorProvider.SetError(txtTargetDirectory, "导出目录不能为空");
                return;
            }

            if (string.IsNullOrWhiteSpace(txtNumbers.Text) || txtNumbers.Lines.Length == 0)
            {
                errorProvider.SetError(txtNumbers, "请输入要导出的内容");
            }

            errorProvider.Clear();

            var svnRepository       = cbxSvnRepository.Text.Trim();
            var svnRepositoryResult = ValidateSvnRepostory(svnRepository);

            if (!string.IsNullOrEmpty(svnRepositoryResult))
            {
                MessageBox.Show(svnRepositoryResult, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            var targetDirectory = txtTargetDirectory.Text.Trim();

            var targetResult = ValidateTargetDirectory(targetDirectory);

            if (!string.IsNullOrEmpty(targetResult))
            {
                MessageBox.Show(targetResult, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            lock (_svnExportMutex)
            {
                _svnExportLog.Clear();
                _svnDeleteLog.Clear();
            }

            ExportSvnParameters parameters = null;

            // SVN Revision
            if (tbExportWay.SelectedTab == tabPageSvnRevision)
            {
                parameters = ExportSvnDirectly(svnRepository, targetDirectory);
            }

            // 禅道Build
            else if (tbExportWay.SelectedTab == tabPageZentaoBuild)
            {
                parameters = ExportZentaoBuild(svnRepository, targetDirectory);
            }

            // 禅道Bug
            else if (tbExportWay.SelectedTab == tabPageZentaoBug)
            {
                parameters = ExportZentaoBug(svnRepository, targetDirectory);
            }
            else if (tbExportWay.SelectedTab == tabPageZentaoStory)
            {
                parameters = ExportZentaoStory(svnRepository, targetDirectory);
            }

            if (parameters != null)
            {
                btnExport.Enabled = false;
                exportSvnBackgroundWorker.RunWorkerAsync(parameters);
            }
        }