static public List <Info> GetFilesToConvert(IEdmVault5 vault, ref EdmCmd poCmd, ref EdmCmdData[] ppoData) { var list = new List <Info>(); foreach (var item in FilesPdm(vault, ref poCmd, ref ppoData)) { var taskParam = new Info(); taskParam.IdPDM = item.IdPDM; var extension = Path.GetExtension(item.FileName); switch (extension.ToUpper()) { case ".SLDPRT": taskParam.CurrentVersion = item.CurrentVersion; taskParam.FileName = item.FileName; taskParam.FolderPath = item.FolderPath; taskParam.FolderID = item.FolderID; taskParam.FullFilePath = item.FullFilePath; taskParam.ConvertFile = item.FileName.ToUpper().Replace(".SLDPRT", ".EPRT"); taskParam.TaskType = 1; list.Add(taskParam); break; } } return(list); }
private void OnTaskDetails(ref EdmCmd poCmd, ref EdmCmdData[] ppoData) { try { IEdmTaskInstance TaskInstance = (IEdmTaskInstance)poCmd.mpoExtra; if ((TaskInstance != null)) { // SetupPageObj;//= new SetupPage((IEdmVault7)poCmd.mpoVault, TaskInstance); return; //Force immediate creation of the control //and its handle //SetupPageObj.CreateControl(); // SetupPageObj.LoadData(poCmd); // SetupPageObj.DisableControls(); poCmd.mbsComment = "State Age Details"; // poCmd.mlParentWnd = SetupPageObj.Handle.ToInt32(); } } catch (System.Runtime.InteropServices.COMException ex) { MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + ex.Message); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
static void OnTaskSetup(ref EdmCmd poCmd, ref EdmCmdData[] ppoData) { try { //Get the property interface used to //access the framework var edmTaskProperties = (IEdmTaskProperties)poCmd.mpoExtra; //Set the property flag that says you want a //menu item for the user to launch the task //and a flag to support scheduling edmTaskProperties.TaskFlags = (int)EdmTaskFlag.EdmTask_SupportsInitForm + (int)EdmTaskFlag.EdmTask_SupportsDetails + (int)EdmTaskFlag.EdmTask_SupportsChangeState; //edmTaskProperties.TaskFlags = (int)EdmTaskFlag.EdmTask_SupportsChangeState + (int)EdmTaskFlag.EdmTask_SupportsInitExec; //Set up the menu commands to launch this task var edmTaskMenuCmds = new EdmTaskMenuCmd[1]; edmTaskMenuCmds[0].mbsMenuString = "Выгрузить eDrawing"; edmTaskMenuCmds[0].mbsStatusBarHelp = "Выгрузить eDrawing"; edmTaskMenuCmds[0].mlCmdID = 1; edmTaskMenuCmds[0].mlEdmMenuFlags = (int)EdmMenuFlags.EdmMenu_Nothing; edmTaskProperties.SetMenuCmds(edmTaskMenuCmds); } catch (COMException ex) { Logger.Add("OnTaskSetup HRESULT = 0x" + ex.ErrorCode.ToString("X") + "; " + ex.Message); } catch (Exception ex) { Logger.Add("OnTaskSetup Error" + ex.Message + ppoData); } }
public void OnCmd(ref EdmCmd poCmd, ref Array ppoData) { if (poCmd.meCmdType == EdmCmdType.EdmCmd_Menu) { if (poCmd.mlCmdID == (int)Commands_e.GetIds) { Func <EdmCmdData, int> getIdFunc = (d) => { var isFile = d.mlObjectID1 != 0; if (isFile) { return(d.mlObjectID1); } else { return(d.mlObjectID2); } }; var msg = string.Join(Environment.NewLine, (ppoData as EdmCmdData[]).Select( d => $"{d.mbsStrData1} - {getIdFunc(d)}").ToArray()); (poCmd.mpoVault as IEdmVault10).MsgBox(0, msg); } } }
public void OnCmd(ref EdmCmd poCmd, ref EdmCmdData[] ppoData) { switch (poCmd.meCmdType) { case EdmCmdType.EdmCmd_CardButton: var addInTagName = poCmd.mbsComment; if (addInTagName == BUTTON_TAG) { var confName = ppoData.First().mbsStrData1; var enumVar = poCmd.mpoExtra as IEdmEnumeratorVariable5; object varVal; enumVar.GetVar("Number", confName, out varVal); var number = varVal?.ToString(); enumVar.GetVar("Revision", confName, out varVal); var revision = varVal?.ToString(); var desc = (object)$"{number} ({revision})"; enumVar.SetVar("Description", confName, ref desc); } break; } }
/// <summary> /// /// </summary> /// <param name="poCmd"></param> /// <param name="ppoData"> is EdmCmdData()</param> public void OnCmd(ref EdmCmd poCmd, ref EdmCmdData[] ppoData) { try { #if DEBUG if (Environment.UserName.Equals("seth.ruhan", StringComparison.OrdinalIgnoreCase) || Environment.UserName.Equals(@"colpro\seth.ruhan", StringComparison.OrdinalIgnoreCase)) { PauseToAttachProcess(poCmd.meCmdType.ToString()); } #endif // Handle the menu command switch (poCmd.meCmdType) { case EdmCmdType.EdmCmd_Menu: switch (poCmd.mlCmdID) { case 1: // ClickToRunTask(poCmd); break; } break; case EdmCmdType.EdmCmd_TaskRun: OnTaskRun(ref poCmd, ref ppoData); break; case EdmCmdType.EdmCmd_TaskSetup: //Called when a new task in the administrator is created (not saved tho) OnTaskSetup(ref poCmd, ref ppoData); break; case EdmCmdType.EdmCmd_TaskDetails: OnTaskDetails(ref poCmd, ref ppoData); break; case EdmCmdType.EdmCmd_TaskLaunch: OnTaskSetupButton(ref poCmd, ref ppoData); break; case EdmCmdType.EdmCmd_TaskLaunchButton: OnTaskSetupButton(ref poCmd, ref ppoData); break; case EdmCmdType.EdmCmd_TaskSetupButton: //The Okay or cancel on the Task form in the administrator is pushed OnTaskSetupButton(ref poCmd, ref ppoData); break; } } catch (System.Runtime.InteropServices.COMException ex) { log.Error(ex); MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + ex.Message); } catch (Exception ex) { log.Error(ex); MessageBox.Show(ex.Message); } }
public void OnCmd(ref EdmCmd poCmd, ref EdmCmdData[] ppoData) { switch (poCmd.meCmdType) { case EdmCmdType.EdmCmd_Menu: OnMenu(ref poCmd, ref ppoData); break; } }
public void OnCmd(ref EdmCmd poCmd, ref Array ppoData) { if (poCmd.meCmdType == EdmCmdType.EdmCmd_Menu) { if (poCmd.mlCmdID == TEST_CMD_ID) { (poCmd.mpoVault as IEdmVault10).MsgBox(0, "Hello World!"); } } }
public void OnCmd(ref EdmCmd poCmd, ref System.Array ppoData) { //public void OnCmd(ref EdmCmd poCmd, ref EdmCmdData[] ppoData) //{ EdmVault5 vault = (EdmVault5)poCmd.mpoVault; if (poCmd.meCmdType == EdmCmdType.EdmCmd_Menu) { if (poCmd.mlCmdID == 1) { if (ppoData.Length < 0) { System.Windows.Forms.MessageBox.Show("请选择一个文件"); return; } if (ppoData.Length > 1) { System.Windows.Forms.MessageBox.Show("只能选择一个文件"); return; } int fileId = 0; int parentFolderId = 0; foreach (EdmCmdData AffectedFile in ppoData) { fileId = AffectedFile.mlObjectID1; parentFolderId = AffectedFile.mlObjectID3; } if (fileId == 0) { System.Windows.Forms.MessageBox.Show("请选择一个文件"); return; } ExportExcelForm form = new ExportExcelForm(); IEdmFile5 file = (IEdmFile5)vault.GetObject(EdmObjectType.EdmObject_File, fileId); IEdmFolder5 folder = (IEdmFolder5)vault.GetObject(EdmObjectType.EdmObject_Folder, parentFolderId); string filePath = folder.LocalPath + "\\" + file.Name; form.selectFile = filePath; if (form.ShowDialog() == DialogResult.OK) { string outFile = form.saveFilePath; FormStatusBar statusBar = new FormStatusBar("明细表导出", "正在导出,请稍后...."); statusBar.UserCustomEvent += (obj) => { exportExcel(vault, form.selectFile, form.saveFilePath); }; statusBar.ShowDialog(); } GC.Collect(); } } }
private void OnTaskSetup(ref EdmCmd poCmd, ref EdmCmdData[] ppoData) { try { //Get the property interface used to access the framework IEdmTaskProperties props = poCmd.mpoExtra as IEdmTaskProperties; //Get the settings for exist task try { string res = props.GetValEx(AutoCADTaskSettings.Acadtask_Settings) as string; if (!string.IsNullOrEmpty(res)) { taskSettings = JsonConvert.DeserializeObject <AutoCADTaskSettings>(res); } } catch { } if (taskSettings == null) { taskSettings = new AutoCADTaskSettings(); taskSettings.CreateMenu = true; taskSettings.CreatePDF = true; taskSettings.MenuDescription = "Convert AutoCAD"; taskSettings.MenuName = "Convert AutoCAD"; } //Set the property flag that says you want a //menu item for the user to launch the task //and a flag to support scheduling props.TaskFlags = (int)EdmTaskFlag.EdmTask_SupportsInitExec + (int)EdmTaskFlag.EdmTask_SupportsDetails + (int)EdmTaskFlag.EdmTask_SupportsChangeState + (int)EdmTaskFlag.EdmTask_SupportsInitForm; EdmTaskSetupPage[] setupPages = new EdmTaskSetupPage[2]; setupPages[0].mbsPageName = "Menus Command"; setupPages[1].mbsPageName = "TitleBlocks"; //pages[0].mlPageHwnd = SetupPageObj.Handle.ToInt32(); //pages[0].mpoPageImpl = SetupPageObj; props.SetSetupPages(setupPages); } catch (System.Runtime.InteropServices.COMException ex) { log.Error(ex); // MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + ex.Message); } catch (Exception ex) { log.Error(ex); //MessageBox.Show(ex.Message); } }
public void OnCmd(ref EdmCmd poCmd, ref Array ppoData) { //if (Strings.Left(poCmd.mbsComment, 4) == "JES") //{ // IEdmEnumeratorVariable5 vars = (IEdmEnumeratorVariable5)poCmd.mpoExtra; // EdmVault5 vault5 = (EdmVault5)poCmd.mpoVault; // IEdmVault11 valut11 = (IEdmVault11)vault5; // frmMain frmMain = new frmMain(new List<string> { "", "" }); // if (frmMain.ShowDialog() == DialogResult.OK) // { // vars.SetVar("A代号", "", frmMain.ResultCode); // } //} }
public AutoCADTaskAddin(EdmCmd poCmd, EdmCmdData[] ppoData, AutoCADTaskSettings taskSettings) { //Get the task instance interface inst = poCmd.mpoExtra as IEdmTaskInstance; data = ppoData; settings = taskSettings; if (inst == null) { throw new Exception("Task values incorrect"); } vault = (IEdmVault20)poCmd.mpoVault; Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("MTcwMjQwQDMxMzcyZTMzMmUzMGhycFlDaldXNDVZeWxhdnFwckswQnRhMHVwclp2OWNrUEltNHczb21ENDQ9;MTcwMjQxQDMxMzcyZTMzMmUzMG4xOFQ1dnBDR1oxalUvazM5UmlTRkdUelJRcHkweURnVERXRXRabnpaZVE9"); }
private void OnTaskSetup(ref EdmCmd poCmd, ref EdmCmdData[] ppoData) { try { IEdmTaskProperties props = default(IEdmTaskProperties); props = (IEdmTaskProperties)poCmd.mpoExtra; } catch (System.Runtime.InteropServices.COMException ex) { MessageObserver.Instance.SetMessage("HRESULT = 0x" + ex.ErrorCode.ToString("X") + ex.Message); } catch (Exception ex) { MessageObserver.Instance.SetMessage(ex.Message); } }
void IEdmAddIn5.OnCmd(ref EdmCmd poCmd, ref Array ppoData) { try { switch (poCmd.meCmdType) { case EdmCmdType.EdmCmd_TaskRun: try { TaskRun(poCmd.mpoVault as IEdmVault13, GetVaultObjects(ppoData)); } catch (Exception ex) { SetTaskError(poCmd, ex); } break; case EdmCmdType.EdmCmd_TaskSetup: // TODO: Implement task setup page... break; case EdmCmdType.EdmCmd_TaskSetupButton: var taskProps = poCmd.mpoExtra as IEdmTaskProperties; taskProps.TaskFlags = (int)( EdmTaskFlag.EdmTask_SupportsInitExec | EdmTaskFlag.EdmTask_SupportsChangeState); taskProps.SetMenuCmds(new EdmTaskMenuCmd[] { new EdmTaskMenuCmd { mlCmdID = 1, mbsMenuString = "Convert DOC to PDF", mbsStatusBarHelp = "", mlEdmMenuFlags = (int)( EdmMenuFlags.EdmMenu_ContextMenuItem | EdmMenuFlags.EdmMenu_OnlyFiles | EdmMenuFlags.EdmMenu_MustHaveSelection) } }); break; } } catch (Exception ex) { HandleEx(ex, true); } }
public void OnCmd(ref EdmCmd poCmd, ref EdmCmdData[] ppoData) { switch (poCmd.meCmdType) { case EdmCmdType.EdmCmd_TaskRun: OnTaskRun(ref poCmd, ref ppoData); break; case EdmCmdType.EdmCmd_TaskSetup: OnTaskSetup(ref poCmd, ref ppoData); break; case EdmCmdType.EdmCmd_Menu: OnMenu(ref poCmd, ref ppoData); break; } }
/// <summary> /// Begins the task. /// </summary> /// <param name="poCmd"></param> /// <param name="ppoData"></param> public void OnCmd(ref EdmCmd poCmd, ref EdmCmdData[] ppoData) { try { #region Task Addin version switch (poCmd.meCmdType) { case EdmCmdType.EdmCmd_TaskRun: OnTaskRun(ref poCmd, ref ppoData); break; case EdmCmdType.EdmCmd_TaskSetup: OnTaskSetup(ref poCmd, ref ppoData); break; case EdmCmdType.EdmCmd_TaskDetails: break; case EdmCmdType.EdmCmd_TaskSetupButton: break; } #endregion #region Addin version //vault = poCmd.mpoVault as IEdmVault7; //switch (poCmd.meCmdType) // { // case EdmCmdType.EdmCmd_Menu: // OnTaskRun(ref poCmd, ref ppoData); // break; // } #endregion } catch (COMException ex) { Logger.Add("OnCmd HRESULT = 0x" + ex.ErrorCode.ToString("X") + "; " + ex.Message); } catch (Exception ex) { Logger.Add("OnCmd = " + ex.Message + "; " + ex.StackTrace); } }
/// <summary> /// Sets the status of a task to EdmTaskStat_DoneFailed and sends correct message based on argument Exception. /// </summary> /// <param name="poCmd"></param> /// <param name="ex"></param> protected void SetTaskError(EdmCmd poCmd, Exception ex) { string msg; IEdmTaskInstance taskInst = poCmd.mpoExtra as IEdmTaskInstance; if (taskInst != null) { int hres = 0; if (ex is COMException) { hres = (ex as COMException).ErrorCode; } var dt = DateTime.Now.ToString(); msg = string.Format("{0} --- {1}", dt, ex.ToString()); taskInst.SetStatus(EdmTaskStatus.EdmTaskStat_DoneFailed, hres, msg); } }
public void OnCmd(ref EdmCmd poCmd, ref EdmCmdData[] ppoData) { IEdmVault5 tmpVault = poCmd.mpoVault as IEdmVault5; //link to the current vault try { switch (poCmd.meCmdType) { case EdmCmdType.EdmCmd_CardButton: case EdmCmdType.EdmCmd_Menu: if (poCmd.mbsComment == bc_window | poCmd.mlCmdID == 1000) { FileData[] FP = new FileData[ppoData.Length]; for (int i = 0; i < ppoData.Length; i++) { var dcFile = tmpVault.GetObject(EdmObjectType.EdmObject_File, ppoData[i].mlObjectID1) as IEdmFile5; if (dcFile != null) { var folder_POS = dcFile.GetFirstFolderPosition(); var dcFolder = dcFile.GetNextFolder(folder_POS); FP[i].VaultName = tmpVault.Name; FP[i].FileID = dcFile.ID.ToString(); FP[i].FileName = dcFile.Name; FP[i].FolderID = dcFolder.ID.ToString(); FP[i].FolderPath = dcFolder.LocalPath; } } if (!string.IsNullOrEmpty(FP[0].FileName)) { addinWindow f = new addinWindow(ref FP); f.ShowDialog(); } } break; } } catch (COMException ex) { string errorName, errorDesc; tmpVault.GetErrorString(ex.ErrorCode, out errorName, out errorDesc); tmpVault.MsgBox(0, errorDesc, EdmMBoxType.EdmMbt_OKOnly, errorName); } }
private void OnMenu(ref EdmCmd poCmd, ref EdmCmdData[] ppoData) { int i; for (i = 0; i < ppoData.Length; i++) { if (((EdmCmdData)ppoData.GetValue(0)).mlObjectID1 != 0) { var vault = (IEdmVault7)poCmd.mpoVault; var file = (IEdmFile7)vault.GetObject(EdmObjectType.EdmObject_File, ((EdmCmdData)ppoData.GetValue(i)).mlObjectID1); var folder = (IEdmFolder5)vault.GetObject(EdmObjectType.EdmObject_Folder, ((EdmCmdData)ppoData.GetValue(i)).mlObjectID3); Form1 f = new Form1(file, vault); f.ShowDialog(); } } }
static public List <Info> FilesPdm(IEdmVault5 vault, ref EdmCmd poCmd, ref EdmCmdData[] ppoData) { var list = new List <Info>(); try { foreach (EdmCmdData edmCmdData in ppoData) { try { var fileId = edmCmdData.mlObjectID1; var parentFolderId = edmCmdData.mlObjectID2; // for Task //var parentFolderId = edmCmdData.mlObjectID3; // for Addin var fileEdm = (IEdmFile5)vault.GetObject(EdmObjectType.EdmObject_File, fileId); var folder = (IEdmFolder5)vault.GetObject(EdmObjectType.EdmObject_Folder, parentFolderId); var taskParam = new Info(); taskParam.IdPDM = fileEdm.ID; taskParam.CurrentVersion = fileEdm.CurrentVersion; taskParam.FileName = fileEdm.Name; taskParam.FolderPath = folder.LocalPath; taskParam.FolderID = folder.ID; taskParam.FullFilePath = folder.LocalPath + "\\" + fileEdm.Name; list.Add(taskParam); } catch (Exception exeption) { Logger.Add("FilesPdm - " + exeption.Message); } } } catch (COMException ex) { Logger.Add("OnTaskSetup HRESULT = 0x" + ex.ErrorCode.ToString("X") + ex.Message); } catch (Exception ex) { Logger.Add(ex.Message + "; " + ex.StackTrace); } return(list); }
private void OnTaskRun(ref EdmCmd poCmd, ref EdmCmdData[] ppoData) { IEdmTaskInstance inst = default(IEdmTaskInstance); inst = (IEdmTaskInstance)poCmd.mpoExtra; IEdmVault5 vault = new EdmVault5(); try { for (int i = 0; i < ppoData.Length; i++) { if (((EdmCmdData)ppoData.GetValue(0)).mlObjectID1 != 0) { vault = (IEdmVault5)poCmd.mpoVault; IEdmObject5 folderObject = vault.GetObject(EdmObjectType.EdmObject_Folder, ((EdmCmdData)ppoData.GetValue(i)).mlObjectID2); IEdmFolder5 ef = (IEdmFolder5)folderObject; IEdmObject5 fileObject = vault.GetObject(EdmObjectType.EdmObject_File, ((EdmCmdData)ppoData.GetValue(i)).mlObjectID1); string fullpath = ef.LocalPath + "\\" + fileObject.Name; DxfLoad dxfl = new DxfLoad(); var sp = dxfl.GetSpecification(fullpath, ""); dxfl.UpLoadDxf(sp); XmlFile xf = new XmlFile(); xf.DownloadXml(fullpath); } SolidWorksPdmAdapter.Instance.KillProcsses("SLDWORKS"); MessageObserver.Instance.SetMessage("End upload.\n"); } } catch (System.Runtime.InteropServices.COMException ex) { inst.SetStatus(EdmTaskStatus.EdmTaskStat_DoneFailed, ex.ErrorCode, "The test task failed!"); } catch (Exception ex) { MessageObserver.Instance.SetMessage(ex.Message); } }
private void OnTaskSetupButton(ref EdmCmd poCmd, ref EdmCmdData[] ppoData) { try { //Custom setup page, SetupPageObj, is created //in method Class1::OnTaskSetup; SetupPage::StoreData //saves the contents of the list box to poCmd.mpoExtra //in the IEdmTaskProperties interface if (poCmd.mbsComment == "OK" && (taskSettings != null)) { IEdmTaskProperties props = poCmd.mpoExtra as IEdmTaskProperties; //Pull settings from windows //Set up the menu commands to launch this task if (taskSettings.CreateMenu) { EdmTaskMenuCmd[] cmds = new EdmTaskMenuCmd[1]; cmds[0].mbsMenuString = taskSettings.MenuName; cmds[0].mbsStatusBarHelp = taskSettings.MenuDescription; cmds[0].mlCmdID = 2; cmds[0].mlEdmMenuFlags = (int)EdmMenuFlags.EdmMenu_MustHaveSelection; props.SetMenuCmds(cmds); } props.SetValEx(AutoCADTaskSettings.Acadtask_Settings, JsonConvert.SerializeObject(taskSettings)); } } catch (System.Runtime.InteropServices.COMException ex) { MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + ex.Message); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { taskSettings = null; } }
private void OnMenu(ref EdmCmd poCmd, ref EdmCmdData[] ppoData) { try { Logger.Instance.RootDirectory = tempAppFolder; MessageObserver.Instance.ReceivedMessage += Program.Instance_ReceivedMessage; for (int i = 0; i < ppoData.Length; i++) { if (((EdmCmdData)ppoData.GetValue(0)).mlObjectID1 != 0) { IEdmVault5 vault = new EdmVault5(); vault = (IEdmVault5)poCmd.mpoVault; IEdmObject5 folderObject = vault.GetObject(EdmObjectType.EdmObject_Folder, ((EdmCmdData)ppoData.GetValue(i)).mlObjectID3); IEdmFolder5 ef = (IEdmFolder5)folderObject; IEdmObject5 fileObject = vault.GetObject(EdmObjectType.EdmObject_File, ((EdmCmdData)ppoData.GetValue(i)).mlObjectID1); string fullpath = ef.LocalPath + "\\" + fileObject.Name; DxfLoad dxfl = new DxfLoad(); var sp = dxfl.GetSpecification(fullpath, ""); dxfl.UpLoadDxf(sp); //XmlFile xf = new XmlFile(); //xf.DownloadXml(fullpath); } SolidWorksPdmAdapter.Instance.KillProcsses("SLDWORKS"); //MessageObserver.Instance.SetMessage("End upload.\n"); } } catch (Exception ex) { MessageObserver.Instance.SetMessage(ex.Message); throw; } }
public void OnCmd(ref EdmCmd poCmd, ref EdmCmdData[] ppoData) { try { switch (poCmd.meCmdType) { case EdmCmdType.EdmCmd_PreExploreInit: createCustomTabView(poCmd.mpoExtra); break; case EdmCmdType.EdmCmd_ActivateAPITab: MessageBox.Show("The custom tab has been activated!", "Activate", MessageBoxButton.OK, MessageBoxImage.Exclamation); break; default: break; } } catch (System.Runtime.InteropServices.COMException ex) { MessageBox.Show($"HRESULT = 0x{ex.ErrorCode.ToString("X")} {ex.Message}", "Interop Error", MessageBoxButton.OK, MessageBoxImage.Error); } catch (Exception ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error); } }
private void OnTaskRun(ref EdmCmd poCmd, ref EdmCmdData[] ppoData) { //Get the task instance interface IEdmTaskInstance inst = poCmd.mpoExtra as IEdmTaskInstance; if (inst == null) { return; } try { AutoCADTaskSettings taskSettings; string settings = inst.GetValEx(AutoCADTaskSettings.Acadtask_Settings) as string; if (!string.IsNullOrEmpty(settings)) { taskSettings = JsonConvert.DeserializeObject <AutoCADTaskSettings>(settings); } else { taskSettings = new AutoCADTaskSettings(); } var tas = new AutoCADTaskAddin(poCmd, ppoData, taskSettings); tas.runTask(); } catch (System.Runtime.InteropServices.COMException ex) { log.Error(ex); inst.SetStatus(EdmTaskStatus.EdmTaskStat_DoneFailed, ex.ErrorCode, "The test task failed!"); } catch (Exception ex) { log.Error(ex); inst.SetStatus(EdmTaskStatus.EdmTaskStat_DoneFailed, 0, "", "The test task failed!"); } }
public void OnCmd(ref EdmCmd poCmd, ref Array ppoData) { try { //// TODO: This is useful for showing child windows properly //poCmd.mlParentWnd; switch (poCmd.meCmdType) { case EdmCmdType.EdmCmd_Menu: if (poCmd.mlCmdID == 1) { //// TODO: Only supporting single selection for now. //foreach(EdmCmdData d in ppoData) //{ // d.mbsStrData1 = //} var fileData = (EdmCmdData)ppoData.GetValue(0); string fileName = fileData.mbsStrData1; int fileId = fileData.mlObjectID1; int folderId = fileData.mlObjectID3; IEdmVault16 vault = (IEdmVault16)poCmd.mpoVault; IEdmFile5 file = (IEdmFile5)vault.GetObject(EdmObjectType.EdmObject_File, fileId); IEdmFolder5 parentFolder = (IEdmFolder5)vault.GetObject(EdmObjectType.EdmObject_Folder, folderId); string parentFilePath = file.GetLocalPath(parentFolder.ID); var fileVars = (IEdmEnumeratorVariable10)file.GetEnumeratorVariable(); // get the variable object oVal; bool success = fileVars.GetVar2(VARIABLE_NAME, "@", parentFolder.ID, out oVal); if (file.IsLocked) { MessageBox.Show("The file must be checked in."); } else if (oVal == null) { MessageBox.Show($"The variable '{VARIABLE_NAME}' has no value."); } else { var window = new AAFileRefsWindow(); // do search and gret results... var search = new VaultSearch(vault); AAFileRef[] results = search.SearchForFileRefs(oVal.ToString()); var vm = new AAFileRefsViewModel(parentFilePath, results, () => window.Close()); window.DataContext = vm; window.ShowDialog(); if (vm.OkWasClicked) { var fileRefsSvc = new CustomRefsService(vault); string[] chilPaths = vm.Results .Where(x => x.IsIncluded) .Select(x => x.Path).ToArray(); fileRefsSvc.AddCustomReferences(file.ID, chilPaths); } } } break; case EdmCmdType.EdmCmd_PostAdd: break; default: break; } } catch (Exception ex) { #if Debug MessageBox.Show(ex.ToString()); #else MessageBox.Show(ex.Message); #endif } }
void IEdmAddIn5.OnCmd(ref EdmCmd poCmd, ref System.Array ppoData) { try { BW.RunWorkerCompleted += BW_RunWorkerCompleted; BW.WorkerSupportsCancellation = true; Debug.Print("Command Type: " + poCmd.meCmdType.ToString() + "\n " + System.DateTime.Now.ToString()); IEdmVault5 edmVault = poCmd.mpoVault as IEdmVault5; EdmCmdData[] Temp = (EdmCmdData[])ppoData; IEdmVault7 vault = (IEdmVault7)poCmd.mpoVault; vault_ = vault; try { file_ = Temp[0]; } catch { } DataHelper helper = new DataHelper(); try { switch (poCmd.meCmdType) { case EdmCmdType.EdmCmd_Menu: switch (poCmd.mlCmdID) { case 1: #region Item Master foreach (EdmCmdData file in Temp) { if (ValidSelection(file)) GetItemInfo(vault, file, ""); } #endregion break; case 2: #region Add Item/Rev/OOM/BOM string config; foreach (EdmCmdData file in Temp) { if (ValidSelection(file)) { IEdmFile5 part = (IEdmFile5)vault.GetObject(EdmObjectType.EdmObject_File, file.mlObjectID1); string selected_config = DetermineConfig(part, vault, file, ""); if (GetItemInfo(vault, file, selected_config) == DialogResult.Cancel) break; if (AddRevision(vault, file, selected_config) == DialogResult.Cancel) break; if (AddOOM(vault, file, selected_config) == DialogResult.Cancel) break; #region Bill Master BWForm = new Waiting("Retrieving Bill of Materials from SolidWorks..."); ParentNumber = ""; Area = 0; Weight = 0; Bill.Clear(); string sconfig; AddBill(vault, file, "", out sconfig); if (sconfig == null) break; Bill.Sort((x, y) => x.PartNumber.CompareTo(y.PartNumber)); CombineBill(); Bill_Master BM = new Bill_Master(Bill, ParentNumber, "", Weight, Area); #endregion if (BM.ShowDialog() == DialogResult.Cancel) break; if (CheckInPart(vault, file, selected_config) == DialogResult.Cancel) break; } } #endregion break; case 3: #region CheckOut_Master foreach (EdmCmdData file in Temp) { if (ValidSelection(file)) CheckOutPart(vault, file); } #endregion break; case 4: #region Add Revision foreach (EdmCmdData file in Temp) { if (ValidSelection(file)) AddRevision(vault, file, ""); } #endregion break; case 5: #region OOM_Master foreach (EdmCmdData file in Temp) { if (ValidSelection(file)) AddOOM(vault, file, ""); } #endregion break; case 6: #region Bill Master BWForm = new Waiting("Retrieving Bill of Materials from SolidWorks..."); foreach (EdmCmdData file in Temp) { ParentNumber = ""; Area = 0; Weight = 0; try { //BW = null; //BW = new BackgroundWorker(); Bill.Clear(); string sconfig; AddBill(vault, file, "", out sconfig); if (sconfig == null) break; Bill.Sort((x, y) => x.PartNumber.CompareTo(y.PartNumber)); CombineBill(); Bill_Master BM = new Bill_Master(Bill, ParentNumber, "", Weight, Area); BM.ShowDialog(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } #endregion break; case 7: #region CheckIn_Master foreach (EdmCmdData file in Temp) { if (ValidSelection(file)) CheckInPart(vault, file, ""); } #endregion break; case 0: #region RevCompare BWForm = new Waiting("Retrieving Bill of Materials from SolidWorks..."); foreach (EdmCmdData file in Temp) { try { string file_ext = file.mbsStrData1.Substring(file.mbsStrData1.LastIndexOf('.') + 1).ToUpper(); if (file_ext == "SLDASM") { if (file.mlObjectID1 != null) { System.Data.DataSet DS = new System.Data.DataSet(); DS.Tables.Add("PartMtl"); DS.Tables[0].Columns.Add("MtlPartNum"); DS.Tables[0].Columns.Add("QtyPer"); Bill.Clear(); ParentNumber = ""; string rconfig; AddBill(vault, file, "", out rconfig); if (rconfig == null) break; try { Bill.Sort((x, y) => x.PartNumber.CompareTo(y.PartNumber)); CombineBill(); foreach (BillItem item in Bill) { System.Data.DataRow dr = DS.Tables[0].NewRow(); dr["MtlPartNum"] = item.PartNumber; dr["QtyPer"] = item.Qty; DS.Tables[0].Rows.Add(dr); } } catch (Exception ex) { MessageBox.Show(ex.Message); } try { RevCompare RC = new RevCompare(DS, ParentNumber); RC.ShowDialog(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } else { RevCompare RC = new RevCompare(); RC.ShowDialog(); } } else { MessageBox.Show("This function cannot be used on Parts.", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); } } catch (Exception ex) { MessageBox.Show(ex.Message); } } break; #endregion case -2: #region Op Minutes foreach (EdmCmdData file in Temp) { try { Mins[0] = 0; //Huck Mins[1] = 0; //Tec Mins[2] = 0; //Bolt Mins[3] = 0; //Rivet Mins[4] = 0; //Band Mins[5] = 0; //Heat Mins[6] = 0; //Spring Mins[7] = 0; //Zhooks BW = null; BW = new BackgroundWorker(); BW.WorkerSupportsCancellation = true; CalcMins(vault, file, ""); Epicor_Integration.Operations_Minutes OpsMins = new Operations_Minutes(Mins[0].ToString(), Mins[1].ToString(), Mins[2].ToString(), Mins[3].ToString(), Mins[4].ToString(), Mins[5].ToString(), Mins[6].ToString(), Mins[7].ToString()); OpsMins.Show(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } break; #endregion case -1: Config conf = new Config(); conf.ShowDialog(); break; case -10: foreach (EdmCmdData file in Temp) { if (ValidSelection(file)) { Update_Properties Update = new Update_Properties(vault, file); Update.ShowDialog(); } } break; case -100: Template_Master TM = new Template_Master(); TM.ShowDialog(); break; case - 101: SearchPart SP = new SearchPart(); SP.ShowDialog(); break; default: break; } break; default: break; } } catch (COMException exp) { string errorName, errorDesc; edmVault.GetErrorString(exp.ErrorCode, out errorName, out errorDesc); edmVault.MsgBox(0, errorDesc, EdmMBoxType.EdmMbt_OKOnly, errorName); } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
void OnTaskRun(ref EdmCmd poCmd, ref EdmCmdData[] ppoData) { var statusTask = true; edmTaskInstance = (IEdmTaskInstance)poCmd.mpoExtra; edmTaskInstance.SetStatus(EdmTaskStatus.EdmTaskStat_Running); List <Files.Info> filesToConvert = null; try { var vault = poCmd.mpoVault as IEdmVault7; InitializeErrorList(); filesToProceed = 1; filesPdm = Files.GetFilesToConvert(vault, ref poCmd, ref ppoData); FilesList = Batch.UpdateFileInfo(vault, filesPdm); filesToConvert = FilesList.Where(x => !x.ExistCutList | !x.ExistDXF /*| !x.ExistEdrawing*/).ToList(); Logger.Add($@"\n\n{new string('-', 500)}\nTime {DateTime.Now}\nЗадача '{edmTaskInstance.TaskName}' ID: {edmTaskInstance.ID}, для {filesToConvert.Count} элемента(ов), OnTaskRun ver.{currentVer}"); edmTaskInstance.SetProgressRange(filesToConvert.Count, 0, $"Запуск задачи в {DateTime.Now}"); GetAndDeleteUnnecesseryFromPdm(vault, filesToConvert); // Run SldWorks if (filesToConvert.Count != 0) { KillSwAndStartNewProccess(); // Разбиваем лист на группы var nChunks = 1; var totalLength = filesToConvert.Count(); var chunkLength = (int)Math.Ceiling(totalLength / (double)nChunks); var partsToList = Enumerable.Range(0, chunkLength).Select(i => filesToConvert.Skip(i * nChunks).Take(nChunks).ToList()).ToList(); for (var i = 0; i < partsToList.Count; i++) { if (!ConvertChunk(vault, partsToList[i])) { statusTask = false; } } } } catch (COMException ex) { statusTask = false; this.ex = ex; Logger.Add("OnTaskRun HRESULT = 0x" + ex.ErrorCode.ToString("X") + "; " + ex.StackTrace + "; \n" + ex.Message); } catch (Exception ex) { statusTask = false; this.ex = ex; Logger.Add(ex.Message + ";\n" + ex.StackTrace); } finally { if (ListWithConvertErrors?.Count > 0) { statusTask = false; try { var message = ""; foreach (var item in ListWithConvertErrors) { message = message + "\n" + $"FileName - {item.FileName} FolderID - {item.FolderID} IdPDM - {item.IdPDM} Revision {item.Revision}"; } Logger.Add(message); } catch (Exception) { Logger.Add("Ошибки при выгрузке данных об ошибке"); } } edmTaskInstance.SetProgressPos(filesToConvert.Count, "Выполнено, ID = " + edmTaskInstance.ID); edmTaskInstance.SetStatus(statusTask ? EdmTaskStatus.EdmTaskStat_DoneOK : EdmTaskStatus.EdmTaskStat_DoneFailed, GetHashCode()); } }
void EdmLib.IEdmAddIn5.OnCmd(ref EdmCmd poCmd, ref System.Array ppoData) { Debug.Print("Command Type: " + poCmd.meCmdType.ToString() + "\n " + System.DateTime.Now.ToString()); IEdmVault5 edmVault = poCmd.mpoVault as IEdmVault5; IEdmTaskProperties props; try { switch (poCmd.meCmdType) { case EdmCmdType.EdmCmd_CardButton: break; case EdmCmdType.EdmCmd_CardInput: break; case EdmCmdType.EdmCmd_CardListSrc: break; case EdmCmdType.EdmCmd_InstallAddIn: break; case EdmCmdType.EdmCmd_Menu: Task_Config TaskConf = new Task_Config(); TaskConf.ShowDialog(); break; case EdmCmdType.EdmCmd_PostAdd: break; case EdmCmdType.EdmCmd_PostAddFolder: break; case EdmCmdType.EdmCmd_PostCopy: break; case EdmCmdType.EdmCmd_PostCopyFolder: break; case EdmCmdType.EdmCmd_PostDelete: break; case EdmCmdType.EdmCmd_PostDeleteFolder: break; case EdmCmdType.EdmCmd_PostGet: break; case EdmCmdType.EdmCmd_PostLock: break; case EdmCmdType.EdmCmd_PostMove: break; case EdmCmdType.EdmCmd_PostMoveFolder: break; case EdmCmdType.EdmCmd_PostRename: break; case EdmCmdType.EdmCmd_PostRenameFolder: break; case EdmCmdType.EdmCmd_PostShare: break; case EdmCmdType.EdmCmd_PostState: break; case EdmCmdType.EdmCmd_PostUndoLock: break; case EdmCmdType.EdmCmd_PostUnlock: break; case EdmCmdType.EdmCmd_PreAdd: break; case EdmCmdType.EdmCmd_PreAddFolder: break; case EdmCmdType.EdmCmd_PreCopy: break; case EdmCmdType.EdmCmd_PreCopyFolder: break; case EdmCmdType.EdmCmd_PreDelete: break; case EdmCmdType.EdmCmd_PreDeleteFolder: break; case EdmCmdType.EdmCmd_PreGet: break; case EdmCmdType.EdmCmd_PreLock: break; case EdmCmdType.EdmCmd_PreMove: break; case EdmCmdType.EdmCmd_PreMoveFolder: break; case EdmCmdType.EdmCmd_PreRename: break; case EdmCmdType.EdmCmd_PreRenameFolder: break; case EdmCmdType.EdmCmd_PreShare: break; case EdmCmdType.EdmCmd_PreState: break; case EdmCmdType.EdmCmd_PreUndoLock: break; case EdmCmdType.EdmCmd_PreUnlock: break; case EdmCmdType.EdmCmd_SerialNo: break; case EdmCmdType.EdmCmd_UninstallAddIn: break; case EdmCmdType.EdmCmd_TaskLaunch: #region TaskLaunch EdmCmdData[] Temp = (EdmCmdData[])ppoData; //Show form Task_Config Task_Conf = new Task_Config(); Task_Conf.ShowDialog(); if (Task_Conf.DialogResult == DialogResult.Cancel) break; //Select directory string[] filepaths = Directory.GetFiles(Properties.Settings.Default.Directory); foreach (EdmCmdData file in Temp) { IEdmVault7 vault = (IEdmVault7)poCmd.mpoVault; IEdmFile5 part = (IEdmFile5)vault.GetObject(EdmObjectType.EdmObject_File, file.mlObjectID1); string filename = DetermineConfig(part, vault, file); if (filename != "") { for (int i = 0; i <= filepaths.GetUpperBound(0); i++) { if (filepaths[i].Substring(filepaths[i].LastIndexOf('\\') + 1) == filename + "." + Properties.Settings.Default.DefaultExt) File.Delete(filepaths[i]); } } } break; #endregion case EdmCmdType.EdmCmd_TaskSetup: props = (IEdmTaskProperties)poCmd.mpoExtra; props.TaskFlags = (int)EdmTaskFlag.EdmTask_SupportsInitExec; break; case EdmCmdType.EdmCmd_TaskDetails: props = (IEdmTaskProperties)poCmd.mpoExtra; props.TaskFlags = (int)EdmTaskFlag.EdmTask_SupportsInitExec; break; case EdmCmdType.EdmCmd_TaskLaunchButton: props = (IEdmTaskProperties)poCmd.mpoExtra; props.TaskFlags = (int)EdmTaskFlag.EdmTask_SupportsInitExec; break; case EdmCmdType.EdmCmd_TaskSetupButton: props = (IEdmTaskProperties)poCmd.mpoExtra; props.TaskFlags = (int)EdmTaskFlag.EdmTask_SupportsInitExec; break; case EdmCmdType.EdmCmd_TaskRun: props = (IEdmTaskProperties)poCmd.mpoExtra; props.TaskFlags = (int)EdmTaskFlag.EdmTask_SupportsInitExec; break; default: break; } } catch (COMException exp) { string errorName, errorDesc; edmVault.GetErrorString(exp.ErrorCode, out errorName, out errorDesc); edmVault.MsgBox(0, errorDesc, EdmMBoxType.EdmMbt_OKOnly, errorName); } }
public void OnCmd(ref EdmCmd poCmd, ref EdmCmdData[] ppoData) { IEdmVault10 edmVault = (IEdmVault10)poCmd.mpoVault; switch (poCmd.meCmdType) { case EdmCmdType.EdmCmd_Menu: // match the CmdID with the command ID specified above switch (poCmd.mlCmdID) { case 100: // CustomAddin -> Action1 string message = ""; for (int i = 0; i < ppoData.Length; i++) { message += ppoData[i].mbsStrData1 + "\n"; } edmVault.MsgBox(0, message); break; case 200: // CustomAddin -> Assy Only BOM for (int i = 0; i < ppoData.Length; i++) { IEdmFile10 file = (IEdmFile10)edmVault.GetObject(EdmObjectType.EdmObject_File, ppoData[i].mlObjectID1); IEdmBomView3 bomView = (IEdmBomView3)file.GetComputedBOM("BOM", 0, "@", (int)EdmBomFlag.EdmBf_AsBuilt | (int)EdmBomFlag.EdmBf_ShowSelected); string tempFileName = System.IO.Path.GetTempFileName(); bomView.SaveToCSV(tempFileName, true); string[] lines = System.IO.File.ReadAllLines(tempFileName); string csvFile = System.IO.Path.GetTempFileName() + ".csv"; using (System.IO.TextWriter writer = new System.IO.StreamWriter(csvFile)) { for (int j = 0; j < lines.Length; j++) { if (j == 0) { writer.WriteLine(lines[j]); } else if (lines[j].ToUpper().Contains("SLDASM")) { writer.WriteLine(lines[j]); } } System.Diagnostics.Process.Start(csvFile); } } break; default: break; } break; } }
void EdmLib.IEdmAddIn5.OnCmd(ref EdmCmd poCmd, ref System.Array ppoData) { Debug.Print("Command Type: " + poCmd.meCmdType.ToString() + "\n " + System.DateTime.Now.ToString()); IEdmVault5 edmVault = poCmd.mpoVault as IEdmVault5; try { switch (poCmd.meCmdType) { case EdmCmdType.EdmCmd_CardButton: break; case EdmCmdType.EdmCmd_CardInput: break; case EdmCmdType.EdmCmd_CardListSrc: break; case EdmCmdType.EdmCmd_InstallAddIn: break; case EdmCmdType.EdmCmd_Menu: edmVault.MsgBox(0, " SWEPDMAddin2", EdmMBoxType.EdmMbt_OKOnly, "SolidWorks EPDM Addin"); break; case EdmCmdType.EdmCmd_PostAdd: break; case EdmCmdType.EdmCmd_PostAddFolder: break; case EdmCmdType.EdmCmd_PostCopy: break; case EdmCmdType.EdmCmd_PostCopyFolder: break; case EdmCmdType.EdmCmd_PostDelete: break; case EdmCmdType.EdmCmd_PostDeleteFolder: break; case EdmCmdType.EdmCmd_PostGet: break; case EdmCmdType.EdmCmd_PostLock: break; case EdmCmdType.EdmCmd_PostMove: break; case EdmCmdType.EdmCmd_PostMoveFolder: break; case EdmCmdType.EdmCmd_PostRename: break; case EdmCmdType.EdmCmd_PostRenameFolder: break; case EdmCmdType.EdmCmd_PostShare: break; case EdmCmdType.EdmCmd_PostState: break; case EdmCmdType.EdmCmd_PostUndoLock: break; case EdmCmdType.EdmCmd_PostUnlock: break; case EdmCmdType.EdmCmd_PreAdd: break; case EdmCmdType.EdmCmd_PreAddFolder: break; case EdmCmdType.EdmCmd_PreCopy: break; case EdmCmdType.EdmCmd_PreCopyFolder: break; case EdmCmdType.EdmCmd_PreDelete: break; case EdmCmdType.EdmCmd_PreDeleteFolder: break; case EdmCmdType.EdmCmd_PreGet: break; case EdmCmdType.EdmCmd_PreLock: break; case EdmCmdType.EdmCmd_PreMove: break; case EdmCmdType.EdmCmd_PreMoveFolder: break; case EdmCmdType.EdmCmd_PreRename: break; case EdmCmdType.EdmCmd_PreRenameFolder: break; case EdmCmdType.EdmCmd_PreShare: break; case EdmCmdType.EdmCmd_PreState: break; case EdmCmdType.EdmCmd_PreUndoLock: break; case EdmCmdType.EdmCmd_PreUnlock: break; case EdmCmdType.EdmCmd_SerialNo: break; case EdmCmdType.EdmCmd_UninstallAddIn: break; default: break; } } catch (COMException exp) { string errorName, errorDesc; edmVault.GetErrorString(exp.ErrorCode, out errorName, out errorDesc); edmVault.MsgBox(0, errorDesc, EdmMBoxType.EdmMbt_OKOnly, errorName); } }
public void OnCmd(ref EdmCmd poCmd, ref System.Array ppoData) { //Handle the hook string name = null; switch (poCmd.meCmdType) { case EdmCmdType.EdmCmd_PreState: name = "PreState"; break; case EdmCmdType.EdmCmd_PostAdd: name = "PostAdd"; break; case EdmCmdType.EdmCmd_PostLock: name = "PostLock"; break; case EdmCmdType.EdmCmd_PreUnlock: name = "PreUnlock"; break; case EdmCmdType.EdmCmd_PostUnlock: name = "PostUnlock"; break; default: name = "?"; break; } string message = null; message = "sasasa"; int index = 0; // index = Information.LBound(ppoData); index = ppoData.GetLowerBound(0); int last = 0; //last = Information.UBound(ppoData); last = ppoData.GetUpperBound(0); //Append the paths of all files to a message string while (index <= last) { message = message + ((EdmCmdData)(ppoData.GetValue(index))).mbsStrData1 + Environment.NewLine;//Constants.vbLf; index = index + 1; } //Display a message to the user message = "The following files were affected by a " + name + " hook:" + Environment.NewLine /*Constants.vbLf */ + message; EdmVault5 vault = default(EdmVault5); vault = (EdmVault5)poCmd.mpoVault; vault.MsgBox(poCmd.mlParentWnd, message); if (poCmd.meCmdType == EdmCmdType.EdmCmd_Menu) { if (poCmd.mlCmdID == 1) { System.Windows.Forms.MessageBox.Show("C# Add-in"); } } }