|
|
using System;
|
|
|
using System.IO;
|
|
|
using System.Windows;
|
|
|
using Eplan.EplApi.ApplicationFramework;
|
|
|
using Eplan.EplApi.DataModel;
|
|
|
using Eplan.EplApi.HEServices;
|
|
|
using KPlan.Util;
|
|
|
using Progress = Eplan.EplApi.Base.Progress;
|
|
|
|
|
|
namespace KPlan.Actions {
|
|
|
class KCheckProjectAction : Eplan.EplApi.ApplicationFramework.IEplAction {
|
|
|
|
|
|
public bool Execute(ActionCallingContext ctx) {
|
|
|
TCUtil.DO_NOTHING();
|
|
|
if (!TCUtil.CheckLogin()) {
|
|
|
return true;
|
|
|
}
|
|
|
SelectionSet selectionSet = new SelectionSet();
|
|
|
Project currentProject = selectionSet.GetCurrentProject(false);
|
|
|
if (currentProject == null) {
|
|
|
MessageBox.Show("没有选择项目");
|
|
|
return true;
|
|
|
}
|
|
|
string projectCode = EplanUtil.GetPropValue(currentProject.Properties.PROJ_DRAWINGNUMBER);
|
|
|
if (KUtil.IsEmpty(projectCode)) {
|
|
|
MessageBox.Show("项目编号不可为空");
|
|
|
return true;
|
|
|
}
|
|
|
string projPath = currentProject.ProjectDirectoryPath;
|
|
|
DirectoryInfo di = new DirectoryInfo(projPath);
|
|
|
projPath = di.Parent.FullName;
|
|
|
KUtil.Log("加载项目信息[" + currentProject.ProjectName + "]:" + projPath);
|
|
|
if (!projPath.EndsWith("\\")) {
|
|
|
projPath += "\\";
|
|
|
}
|
|
|
string exportFile = projPath + currentProject.ProjectName + ".xml";
|
|
|
Progress progress = new Progress("SimpleProgress");
|
|
|
try {
|
|
|
ExportPartList(progress,currentProject,exportFile);
|
|
|
if (progress.Canceled()) {
|
|
|
progress.EndPart(true);
|
|
|
return true;
|
|
|
}
|
|
|
progress.EndPart(true);
|
|
|
if (!File.Exists(exportFile)) {
|
|
|
MessageBox.Show("导出Partlist异常,未找到导出文件");
|
|
|
return true;
|
|
|
}
|
|
|
}
|
|
|
catch (System.Exception ex) {
|
|
|
progress.EndPart(true);
|
|
|
KUtil.LogErr(ex);
|
|
|
MessageBox.Show("执行出错:" + ex.Message);
|
|
|
}
|
|
|
new Forms.KCheckProject(currentProject,projPath,exportFile,projectCode).ShowDialog();
|
|
|
string save = KUtil.GetConfigValue(KConfigure.CHECK_SECTION, KConfigure.CHECK_SAVEXML);
|
|
|
if (!"TRUE".Equals(save?.ToUpper())) {
|
|
|
File.Delete(exportFile);
|
|
|
}
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
private void ExportPartList(Progress progress,Project currentProject, string exportFile) {
|
|
|
progress.SetTitle("导出检查数据...");
|
|
|
progress.SetAllowCancel(true);
|
|
|
progress.BeginPart(100.0, "");
|
|
|
EplanUtil.ExportPartList(currentProject, exportFile, PartsService.Format.XML);
|
|
|
}
|
|
|
|
|
|
public bool OnRegister(ref string Name, ref int Ordinal) {
|
|
|
Name = "KCheckProjectAction";
|
|
|
Ordinal = 20;
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
public void GetActionProperties(ref ActionProperties actionProperties) {
|
|
|
//actionProperties.Description = "Action test with parameters.";
|
|
|
}
|
|
|
|
|
|
}
|
|
|
}
|