/// <summary> /// 全不选 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void noSelectToolStripMenuItem_Click(object sender, EventArgs e) { if (this.updateTriSatateTreeView.SelectedNode != null) { TriStateTreeNodeHelper.Checked(this.updateTriSatateTreeView, this.updateTriSatateTreeView.SelectedNode, false); } else { TriStateTreeNodeHelper.Checked(this.updateTriSatateTreeView, false); } }
/// <summary> /// 撤销挂起的更改 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void undobtn_Click(object sender, EventArgs e) { if (tfsHelper != null) { List <FileInfo> fileInfos = TriStateTreeNodeHelper.GetTreeNodeChecked(this.updateTriSatateTreeView.Nodes); if (fileInfos.Count == 0) { MessageBox.Show("没有要撤销的文件!"); return; } try { foreach (var item in fileInfos) { JoeyLog.Logging.WriteLog("撤销文件:" + item.FullName); } List <string> addPendingChangesFilePaths = tfsHelper.GetAddPendingChanges(); if (tfsHelper.Undo(fileInfos) == false) { MessageBox.Show("有文件没有撤销,请打开VS查看详情!"); return; } else { foreach (var filePath in addPendingChangesFilePaths) { if (File.Exists(filePath)) { File.Delete(filePath); JoeyLog.Logging.WriteLog("删除新增才文件:" + filePath); } } JoeyLog.Logging.WriteLog("撤销成功!"); MessageBox.Show("撤销成功!"); this.Close(); } } catch (Exception ex) { JoeyLog.Logging.WriteErrorLog(ex); MessageBox.Show("可能有冲突,请打开VS解决冲突!"); } } }
/// <summary> /// 签入 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void checkInbtn_Click(object sender, EventArgs e) { if (tfsHelper != null) { List <FileInfo> fileInfos = TriStateTreeNodeHelper.GetTreeNodeChecked(this.updateTriSatateTreeView.Nodes); if (fileInfos.Count == 0) { MessageBox.Show("没有要签入的文件!"); return; } if (string.IsNullOrEmpty(this.remarktbx.Text)) { MessageBox.Show("请输入签入说明!"); return; } try { foreach (var item in fileInfos) { JoeyLog.Logging.WriteLog("签入文件:" + item.FullName); } if (tfsHelper.CheckIn(fileInfos, this.remarktbx.Text) == false) { MessageBox.Show("有文件没有签入,请打开VS查看详情!"); return; } else { JoeyLog.Logging.WriteLog("签入成功!说明:" + this.remarktbx.Text); MessageBox.Show("签入成功!"); this.Close(); } } catch (Exception ex) { JoeyLog.Logging.WriteErrorLog(ex); MessageBox.Show("可能有冲突,请先撤销签出编辑,再复制编辑签入!"); } } }
/// <summary> /// 复制到指定目录 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void customizebtn_Click(object sender, EventArgs e) { //是否是空 如果是空就去打开选择地址 if (string.IsNullOrEmpty(this.customizePathCBX.Text)) { FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog(); folderBrowserDialog.SelectedPath = this.customizePathCBX.Text; if (folderBrowserDialog.ShowDialog() == DialogResult.OK) { //选择的文件夹 string openFileName = folderBrowserDialog.SelectedPath; this.customizePathCBX.Text = openFileName; if (!File.Exists(openFileName + "\\Web.config")) { MessageBox.Show("请选择二开根目录!"); return; } } else { return; } } this._updateFiles = TriStateTreeNodeHelper.GetTreeNodeChecked(this.updateTriSatateTreeView.Nodes); if (this._updateFiles == null) { MessageBox.Show("请选择读取产品修改信息!"); return; } if (this._updateFiles.Count == 0) { MessageBox.Show("没有要复制编辑签出的文件!"); return; } progressValue = 0; customizePath = this.customizePathCBX.Text; this.worker.RunWorkerAsync(); // 运行 backgroundWorker 组件 ProgressBar form = new ProgressBar(this.worker); // 显示进度条窗体 form.ShowDialog(this); }
/// <summary> /// 打开更新的文件目录 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void RootFileBtn_Click(object sender, EventArgs e) { this._updateFiles = new List <FileInfo>(); this.updateTriSatateTreeView.Nodes.Clear(); string rootPath = this.pathTBx.Text; //获取修改当前日期 _dt = DateTime.Parse(DateTime.Parse(this.updateDateTimePicker.Text).ToString("yyyy/MM/dd")); if (string.IsNullOrEmpty(this.pathTBx.Text)) { //选择文件夹 FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog(); folderBrowserDialog.SelectedPath = rootProductPath; if (folderBrowserDialog.ShowDialog() == DialogResult.OK) { //选择的文件夹 this.pathTBx.Text = folderBrowserDialog.SelectedPath; } } if (!File.Exists(rootPath + "\\Web.config")) { MessageBox.Show("请选择产品根目录!"); } else { //产品TFS TFSHelper tfs = new TFSHelper(Directory.GetParent(rootPath).FullName, productSlnFileName); _updateFiles.AddRange(GetRootFileName(rootPath)); _updateFiles.AddRange(GetMetadataFiles(rootPath)); var pendingFiles = tfs.GetPendingChange(); //判断产品TFS是否全部签入 if (pendingFiles.Count > 0) { _updateFiles = null; foreach (var item in pendingFiles) { Logging.WriteLog("没有签入的产品文件:", item.FullName); } MessageBox.Show("产品有未签入的数据,不可以迁移二开!"); return; } if (isTip) { _updateFiles = null; MessageBox.Show("产品有未签入的元数据,请在建模平台签入后迁移二开!"); return; } _updateFiles.AddRange(GetBinFiles(rootPath)); _updateFiles.AddRange(GetAppDataFiles(rootPath)); //获取需要更新的文件夹信息 foreach (var updateDirectory in _updateDirectorys) { openFileName = Path.Combine(rootPath, updateDirectory); _updateFiles.AddRange(GetUpdateFiles(openFileName)); } IEnumerable <IGrouping <string, FileInfo> > dictionarys = _updateFiles.GroupBy(n => n.DirectoryName); if (_updateFiles != null && _updateFiles.Count > 0) { foreach (var dictionary in dictionarys) { TriStateTreeNode treeNode1 = new TriStateTreeNode(); treeNode1.Text = dictionary.Key.Replace(this.pathTBx.Text + "\\", ""); treeNode1.Text = treeNode1.Text.Replace(this.pathTBx.Text.Replace("00_根目录", ""), ""); treeNode1.CheckboxVisible = true; treeNode1.Checked = true; treeNode1.IsContainer = true;//文件夹 var list = dictionary.OrderBy(n => n.Name); foreach (var metadataFile in list) { TriStateTreeNode treeNode2 = new TriStateTreeNode(metadataFile.Name, 2, 2); treeNode2.Checked = true; treeNode2.Tag = metadataFile; treeNode1.Nodes.Add(treeNode2); } this.updateTriSatateTreeView.Nodes.Add(treeNode1); } if (this.isTrueCopyRadioBtn.Checked) { this._updateFiles = TriStateTreeNodeHelper.GetTreeNodeChecked(this.updateTriSatateTreeView.Nodes); if (this._updateFiles == null) { MessageBox.Show("请选择产品修改的信息!"); return; } if (this._updateFiles.Count == 0) { MessageBox.Show("没有要复制编辑签出的文件!"); return; } progressValue = 0; customizePath = this.customizePathCBX.Text; this.worker.RunWorkerAsync(); // 运行 backgroundWorker 组件 ProgressBar form = new ProgressBar(this.worker); // 显示进度条窗体 form.ShowDialog(this); } } } }