コード例 #1
0
        public static bool CheckDxfExistance(IEdmVault7 vault, int IdPDM, int CurrentVersion, string fileName)
        {
            var result = true;
            //Get configurations
            var        fileEdm = (IEdmFile5)vault.GetObject(EdmObjectType.EdmObject_File, IdPDM);
            EdmStrLst5 cfgList = default(EdmStrLst5);

            cfgList = fileEdm.GetConfigurations();
            string   cfgName = null;
            IEdmPos5 pos     = default(IEdmPos5);

            pos = cfgList.GetHeadPosition();
            while (!pos.IsNull)
            {
                Exception exc;
                cfgName = cfgList.GetNext(pos);
                if (cfgName != "@")
                {
                    var existDxf = Dxf.ExistDxf(IdPDM, CurrentVersion, cfgName, out exc);
                    //Logger.Add("Проверка на DXF; \n IdPDM: " + IdPDM + "\n Name: " + fileName + "\n Version: " + CurrentVersion + "\n ConfigName: " + cfgName + "\n Exist: " + existDxf);
                    if (!existDxf)
                    {
                        //return
                        result = false;
                    }
                }
            }
            return(result);
        }
コード例 #2
0
        private FileReference GetFileReferencesRecursive(IEdmReference5 edmFileRef, string projectName, int level = 0)
        {
            // Map PDM reference to our file reference type
            FileReference fileRef = new FileReference
            {
                File = new  File
                {
                    Id       = edmFileRef.FileID,
                    FolderId = edmFileRef.FolderID,
                    Name     = edmFileRef.Name,
                    Path     = edmFileRef.FoundPath
                }
            };

            // Recurse for each child
            IEdmPos5 pos = edmFileRef.GetFirstChildPosition(ref projectName, level == 0, true, edmFileRef.VersionRef);

            while (!pos.IsNull)
            {
                IEdmReference5 edmChildRef = edmFileRef.GetNextChild(pos);

                fileRef.Children.Add(
                    GetFileReferencesRecursive(edmChildRef, projectName, level + 1));
            }

            return(fileRef);
        }
コード例 #3
0
ファイル: PDMHelper.cs プロジェクト: jesfisher/gitstudy
        /// <summary>
        /// 【11】获取组名
        /// </summary>
        /// <returns>共有2列,Name和Code</returns>
        public static DataTable GetGroup()
        {
            DataTable dt = new DataTable();

            dt.Columns.Add("Name");
            dt.Columns.Add("Code");
            IEdmUserMgr7   UsrMgr;
            IEdmUserGroup8 mngmtGroup;

            if (vault == null)
            {
                vault = new EdmVault5();
            }
            if (!vault.IsLoggedIn)
            {
                vault.LoginAuto(VaultName, new Control().Handle.ToInt32());
            }
            UsrMgr = (IEdmUserMgr7)vault;

            //Traverse groups
            //string Groups = "";
            IEdmPos5 UserGroupPos = default(IEdmPos5);

            UserGroupPos = UsrMgr.GetFirstUserGroupPosition();
            while (!UserGroupPos.IsNull)
            {
                mngmtGroup = (IEdmUserGroup8)UsrMgr.GetNextUserGroup(UserGroupPos);
                //Groups = Groups + mngmtGroup.Name + "\n";
                DataRow dr = dt.NewRow();
                dr["Name"] = mngmtGroup.Name;
                dr["Code"] = mngmtGroup.ID;
                dt.Rows.Add(dr);
            }
            return(dt);
        }
コード例 #4
0
        public SettingsViewModel(AutoCADTaskSettings source, IEdmVault20 vault)
        {
            OutputPath      = source.OutputPath;
            MenuName        = source.MenuName;
            CreateMenu      = source.CreateMenu;
            MenuDescription = source.MenuDescription;
            CreatePDF       = source.CreatePDF;
            foreach (var b in source.Blocks)
            {
                Blocks.Add(b.Value);
            }

            foreach (var v in source.Variables)
            {
                Variables.Add(v);
            }

            IEdmVariableMgr7 variableMgr = (IEdmVariableMgr7)vault;
            IEdmPos5         pos         = variableMgr.GetFirstVariablePosition();

            while (!pos.IsNull)
            {
                IEdmVariable5 var = variableMgr.GetNextVariable(pos);
                AllVariables.Add(new VariableViewModel()
                {
                    Name = var.Name, Id = var.ID
                });
            }
        }
コード例 #5
0
ファイル: PDMHelper.cs プロジェクト: jesfisher/gitstudy
        //获取用户列表
        public static DataTable GetUserList()
        {
            DataTable dt = new DataTable();

            if (dt.Columns.Count == 0)
            {
                dt.Columns.Add("UserName");
                dt.Columns.Add("UserID");
                dt.Columns.Add("IsLoggedIn");
                dt.Columns.Add("Vault");
                dt.Columns.Add("FullName");
                dt.Columns.Add("UserData");
                dt.Columns.Add("Initials");
                dt.Columns.Add("ObjectType");
                dt.Columns.Add("Email");
            }
            DataRow    dr    = null;
            IEdmVault5 vault = new EdmVault5();

            try
            {
                vault.Login(LogName, PWD, VaultName);
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return(null);
            }
            IEdmUserMgr5 UserMgr = default(IEdmUserMgr5);

            UserMgr = (IEdmUserMgr5)vault;
            IEdmPos5 UserPos = default(IEdmPos5);

            UserPos = UserMgr.GetFirstUserPosition();
            while (!UserPos.IsNull)
            {
                dr = dt.NewRow();
                IEdmUser5  user5  = UserMgr.GetNextUser(UserPos);
                IEdmUser6  user6  = (IEdmUser6)user5;
                IEdmUser7  user7  = (IEdmUser7)user5;
                IEdmUser8  user8  = (IEdmUser8)user5;
                IEdmUser9  user9  = (IEdmUser9)user5;
                IEdmUser10 user10 = (IEdmUser10)user5;

                dr["UserName"]   = user5.Name;
                dr["UserID"]     = user5.ID;
                dr["IsLoggedIn"] = user5.IsLoggedIn;
                dr["Vault"]      = user5.Vault.Name;
                dr["FullName"]   = user6.FullName;
                dr["UserData"]   = user6.UserData;
                dr["Initials"]   = user6.Initials;
                dr["ObjectType"] = user6.ObjectType;
                dr["Email"]      = user10.Email;
                dt.Rows.Add(dr);
            }
            return(dt);
        }
コード例 #6
0
        private static bool GetReferencedFiles(IEdmVault5 vault, IEdmReference10 reference, string filePath, string projectName, ref List <string> refFiles)
        {
            try
            {
                bool bTop = false;
                if (reference == null)
                {
                    bTop = true;
                    SWFileType type = GetSWFileType(filePath);
                    if (type != SWFileType.UNKNOWN)
                    {
                        refFiles.Add(filePath);
                        IEdmFile5   edmFile;
                        IEdmFolder5 edmFolder = null;
                        if (!GetFileFromPath(vault, filePath, out edmFile, out edmFolder))
                        {
                            return(false);
                        }
                        reference = (IEdmReference10)edmFile.GetReferenceTree(edmFolder.ID);
                        if (type == SWFileType.ASSEMBLY)    //装配体递归
                        {
                            GetReferencedFiles(vault, reference, "", projectName, ref refFiles);
                        }
                    }
                }
                else
                {
                    IEdmPos5 pos = default(IEdmPos5);
                    pos = reference.GetFirstChildPosition3(projectName, bTop, true, (int)EdmRefFlags.EdmRef_File, "", 0);
                    while ((!pos.IsNull))
                    {
                        IEdmReference10 @ref = (IEdmReference10)reference.GetNextChild(pos);
                        SWFileType      type = GetSWFileType(@ref.FoundPath);
                        if (type != SWFileType.UNKNOWN)
                        {
                            if (!refFiles.Contains(@ref.FoundPath))
                            {
                                refFiles.Add(@ref.FoundPath);
                                if (type == SWFileType.ASSEMBLY)    //装配体递归
                                {
                                    GetReferencedFiles(vault, @ref, "", projectName, ref refFiles);
                                }
                            }
                        }
                    }
                }

                return(true);
            }
            catch (Exception ex)
            {
                return(false);
            }
        }
コード例 #7
0
        public static void UnLock(IEdmVault7 vault, List <Files.Info> files)
        {
            Logger.Add($"Начало регистрации {files?.Count} файлов.");

            try
            {
                ppoSelection  = new EdmSelItem[files.Count];
                batchUnlocker = (IEdmBatchUnlock)vault.CreateUtility(EdmUtility.EdmUtil_BatchUnlock);
                var i = 0;
                foreach (var file in files)
                {
                    try
                    {
                        var filePath = file.FolderPath + "\\" + file.ConvertFile;
                        fileNameErr = filePath;
                        IEdmFolder5 folder = default(IEdmFolder5);
                        aFile   = vault.GetFileFromPath(filePath, out folder);
                        aPos    = aFile.GetFirstFolderPosition();
                        aFolder = aFile.GetNextFolder(aPos);

                        ppoSelection[i]          = new EdmSelItem();
                        ppoSelection[i].mlDocID  = aFile.ID;
                        ppoSelection[i].mlProjID = aFolder.ID;

                        i = i + 1;
                    }
                    catch (Exception ex)
                    {
                        Logger.Add($"Ошибка при добавлении файла на регистрацию: {ex.Message} Path: {file.FullFilePath} IdPDM: {file.IdPDM} FolderID: {file.FolderID} Version: {file.CurrentVersion}");
                    }
                }

                // Add selections to the batch of files to check in
                batchUnlocker.AddSelection((EdmVault5)vault, ppoSelection);
                if ((batchUnlocker != null))
                {
                    batchUnlocker.CreateTree(0, (int)EdmUnlockBuildTreeFlags.Eubtf_ShowCloseAfterCheckinOption + (int)EdmUnlockBuildTreeFlags.Eubtf_MayUnlock);
                    fileList = (IEdmSelectionList6)batchUnlocker.GetFileList((int)EdmUnlockFileListFlag.Euflf_GetUnlocked + (int)EdmUnlockFileListFlag.Euflf_GetUndoLocked + (int)EdmUnlockFileListFlag.Euflf_GetUnprocessed);
                    batchUnlocker.UnlockFiles(0, null);
                }
            }
            catch (COMException ex)
            {
                Logger.Add("ERROR BatchUnLock файл: '" + fileNameErr + "', " + ex.StackTrace + " " + ex.Message);
            }
            catch (Exception ex)
            {
                Logger.Add("ERROR BatchUnLock: '" + fileNameErr + "', " + ex.StackTrace + " " + ex.Message);
            }

            Logger.Add($"Завершена регистрации {files?.Count} файлов.");
        }
コード例 #8
0
 public string GetNext(IEdmPos5 poPos)
 {
     if (poPos is EdmPosWrapper)
     {
         var val = (poPos as EdmPosWrapper).Current;
         (poPos as EdmPosWrapper).MoveNext();
         return(val);
     }
     else
     {
         throw new NotSupportedException();
     }
 }
コード例 #9
0
 private void populateVariableNames()
 {
     vault = new EdmVault5();
     vault.LoginAuto(selectedVault, 0);
     if (vault.IsLoggedIn)
     {
         variableNames.Clear();
         IEdmVariableMgr5 varMgr = (IEdmVariableMgr5)((IEdmVault7)vault).CreateUtility(EdmUtility.EdmUtil_VariableMgr);
         IEdmPos5         varPos = varMgr.GetFirstVariablePosition();
         while (!varPos.IsNull)
         {
             IEdmVariable5 varToAdd = varMgr.GetNextVariable(varPos);
             variableNames.Add(varToAdd.Name);
         }
     }
 }
コード例 #10
0
        public void GetReferencedFiles(IEdmReference10 Reference, string FilePath, int Level, string ProjectName, ref Dictionary <string, string> RefFilesDictionary)
        {
            try
            {
                bool Top = false;
                if (Reference == null)
                {
                    //This is the first time this function is called for this
                    //reference tree; i.e., this is the root
                    Top = true;
                    //Add the top-level file path to the dictionary
                    RefFilesDictionary.Add(FilePath, Level.ToString());
                    IEdmFile5   File         = null;
                    IEdmFolder5 ParentFolder = null;
                    File = vault1.GetFileFromPath(FilePath, out ParentFolder);
                    //Get the reference tree for this file
                    Reference = (IEdmReference10)File.GetReferenceTree(ParentFolder.ID);
                    GetReferencedFiles(Reference, "", Level + 1, ProjectName, ref RefFilesDictionary);
                }
                else
                {
                    //Execute this code when this function is called recursively;
                    //i.e., this is not the top-level IEdmReference in the tree

                    //Recursively traverse the references
                    IEdmPos5        pos        = default(IEdmPos5);
                    IEdmReference10 Reference2 = (IEdmReference10)Reference;
                    pos = Reference2.GetFirstChildPosition3(ProjectName, Top, true, (int)EdmRefFlags.EdmRef_File, "", 0);
                    IEdmReference10 @ref = default(IEdmReference10);
                    while ((!pos.IsNull))
                    {
                        @ref = (IEdmReference10)Reference.GetNextChild(pos);
                        RefFilesDictionary.Add(@ref.FoundPath, Level.ToString());
                        GetReferencedFiles(@ref, "", Level + 1, ProjectName, ref RefFilesDictionary);
                    }
                }
            }
            catch (System.Runtime.InteropServices.COMException ex)
            {
                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
コード例 #11
0
ファイル: PDMHelper.cs プロジェクト: jesfisher/gitstudy
        /// <summary>
        /// 【11.1】获取组成员
        /// </summary>
        /// <param name="GroupID">组ID</param>
        /// <returns>共有2列,ID/Name/FullName</returns>
        public static DataTable GetGroupMember(int GroupID)
        {
            DataTable dt = new DataTable();

            dt.Columns.Add("ID");
            dt.Columns.Add("Name");
            dt.Columns.Add("FullName");
            IEdmUserMgr7   UsrMgr;
            IEdmUserGroup8 mngmtGroup;
            IEdmUser9      user;
            IEdmPos5       UserPos = default(IEdmPos5);

            if (vault == null)
            {
                vault = new EdmVault5();
            }
            if (!vault.IsLoggedIn)
            {
                vault.LoginAuto(VaultName, new Control().Handle.ToInt32());
            }
            UsrMgr = (IEdmUserMgr7)vault;

            IEdmPos5 UserGroupPos = default(IEdmPos5);

            UserGroupPos = UsrMgr.GetFirstUserGroupPosition();
            while (!UserGroupPos.IsNull)
            {
                mngmtGroup = (IEdmUserGroup8)UsrMgr.GetNextUserGroup(UserGroupPos);
                if (mngmtGroup.ID == GroupID)
                {
                    UserPos = mngmtGroup.GetFirstUserPosition();
                    while (!UserPos.IsNull)
                    {
                        user = (IEdmUser9)mngmtGroup.GetNextUser(UserPos);
                        //Users = Users + " " + user.Name + "\n";
                        DataRow dr = dt.NewRow();
                        dr["ID"]       = user.ID;
                        dr["Name"]     = user.Name;
                        dr["FullName"] = user.FullName;
                        dt.Rows.Add(dr);
                    }
                }
            }
            return(dt);
        }
コード例 #12
0
        private static bool TryGetConfigurations(IEdmFile5 file, out List <string> cfgs)
        {
            cfgs = new List <string>();

            try
            {
                EdmStrLst5 cfgList = file.GetConfigurations();
                IEdmPos5   pos     = cfgList.GetHeadPosition();
                while (!pos.IsNull)
                {
                    string cfgName = cfgList.GetNext(pos);
                    cfgs.Add(cfgName);
                }

                return(true);
            }
            catch (Exception ex)
            {
                return(false);
            }
        }
コード例 #13
0
ファイル: Form1.cs プロジェクト: GitHubVents/PdfFormPdm
        public void GetConfiguration()
        {
            try
            {
                var      s   = File.GetConfigurations();
                IEdmPos5 pos = default(IEdmPos5);
                pos = s.GetHeadPosition();

                while (!pos.IsNull)
                {
                    string conf = s.GetNext(pos);
                    //MessageBox.Show(conf);
                    sw.GetBomShell(File, conf, Vault);
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
                throw;
            }
        }
コード例 #14
0
        ///// <summary>
        ///// Download file in to local directory.
        ///// </summary>
        ///// <param name="dataModel"></param>
        //public string GetPathAndDownLoadFile(DataModel dataModel, string directoryPath)
        //{
        //    this.PDMInitialize();
        //    IEdmFolder5 srcFolder = null;
        //    IEdmFile5 file = edmVault5.GetFileFromPath(dataModel.Path,out srcFolder);
        //    IEdmVault7 vault2 = (IEdmVault7)this.edmVault5;
        //    IEdmFolder5 edmFolder5 = vault2.GetFolderFromPath(directoryPath);
        //    IEdmFolder8 edmFolder8 = (IEdmFolder8)edmFolder5;

        //    int copyFileStatus;
        //    edmFolder8.CopyFile2(file.ID, srcFolder.ID, 0, out copyFileStatus, "", (int)EdmCopyFlag.EdmCpy_Simple);

        //    //var batchGetter = (IEdmBatchGet)(edmVault5 as IEdmVault7).CreateUtility(EdmUtility.EdmUtil_BatchGet);
        //    // batchGetter.AddSelectionEx((EdmVault5)edmVault5, dataModel.Id, dataModel.FolderId, 0);
        //    // if ((batchGetter != null))
        //    // {
        //    //     batchGetter.CreateTree(0, (int)EdmGetCmdFlags.Egcf_SkipUnlockedWritable);
        //    //     batchGetter.GetFiles(0, null);
        //    // }
        //    return null;
        //}

        /// <summary>
        /// Reference in to the components of assembly.
        /// </summary>
        /// <param name="file"></param>
        /// <param name="indent"></param>
        /// <param name="projName"></param>
        /// <returns></returns>
        private string AddReferences(IEdmReference5 file, long indent, ref string projName)
        {
            string filename = null;

            filename = filename + file.Name;

            const bool isTop = false;

            IEdmVault7 vault2 = null;

            if (edmVault5 == null)
            {
                edmVault5 = new EdmVault5();
            }
            vault2 = (IEdmVault7)edmVault5;

            if (!edmVault5.IsLoggedIn)
            {
                edmVault5.LoginAuto(vaultname, 0);
            }

            IEdmPos5 pos = file.GetFirstChildPosition(projName, isTop, true, 0);

            IEdmFolder5 oFolder = null;


            while (!(pos.IsNull))
            {
                IEdmReference5 @ref  = file.GetNextChild(pos);
                var            oFile = (IEdmFile5)edmVault5.GetFileFromPath(@ref.FoundPath, out oFolder);

                filename = filename + AddReferences(@ref, indent, ref projName);

                //MessageBox.Show(filename);
                // Последняя копия перечня в сборке
                oFile.GetFileCopy(0, "", @ref.FoundPath);
            }
            return(filename);
        }
コード例 #15
0
        /// <summary>
        /// Traverses an argument vault folder object recursively and returns a <see cref="Folder"/> instance
        /// representing the complete hierarchical tree structure of the vault folder in question.
        /// This method could be VERY SLOW depending on the size and depth of the folder structure being traversed.
        /// </summary>
        /// <param name="folder"></param>
        /// <returns></returns>
        public static Folder GetFolderTree(IEdmFolder5 folder)
        {
            Folder folderOut = new Folder()
            {
                Id             = folder.ID,
                ParentFolderId = folder.ParentFolder == null ? null : new int?(folder.ParentFolder.ID), // This guards against a potential NullReferenceException only for the vault root folder because it will have a null ParentFolder value.
                Name           = folder.Name,
                Path           = folder.LocalPath,
            };

            IEdmPos5 pos = folder.GetFirstFilePosition();

            while (!pos.IsNull)
            {
                IEdmFile5 edmFile = folder.GetNextFile(pos);

                var file = new File()
                {
                    Id   = edmFile.ID,
                    Name = edmFile.Name,
                    Path = edmFile.GetLocalPath(folder.ID)
                           // TODO: AcmePartNo = ....
                };

                folderOut.Files.Add(file);
            }

            pos = folder.GetFirstSubFolderPosition();
            while (!pos.IsNull)
            {
                IEdmFolder5 subFolder = folder.GetNextSubFolder(pos);

                folderOut.Subfolders.Add(
                    GetFolderTree(subFolder));
            }

            return(folderOut);
        }
コード例 #16
0
        private void AddFileExecute()
        {
#if BlockPDM
            OpenFileDialog ofd = new OpenFileDialog();
            ofd.Multiselect = true;
            ofd.Filter      = "Files (*.dxf,*.Pdf)|*.dxf;*.pdf";
            if (ofd.ShowDialog() == true)
            {
                foreach (string fileName in ofd.FileNames)
                {
                    Files.Add(new FileDataViewModel(new Document(fileName)
                    {
                        FileId = 1, Description = "Test"
                    }));
                }
            }
#else
            IEdmVault11 vault = (IEdmVault11) new EdmVault5();
            EdmStrLst5  res   = vault.BrowseForFile(0, (int)EdmBrowseFlag.EdmBws_ForOpen + (int)EdmBrowseFlag.EdmBws_PermitVaultFiles,
                                                    "Select Files", "All Files (*.pdf,*.dxf,*.step)|*.pdf;*.dxf;*.step||", "", "", "Select Files");
            if (res != null)
            {
                IEdmPos5          pos   = res.GetHeadPosition();
                List <string>     paths = new List <string>();
                IEdmBatchListing4 bli   = vault.CreateUtility(EdmUtility.EdmUtil_BatchList);
                while (pos.IsNull)
                {
                    //paths.Add(res.GetNext(pos));
                    bli.AddFile(res.GetNext(pos), default(DateTime), 0, 0);
                }

                string         Names = "Description\nRevision";
                EdmListCol[]   cols  = null;
                EdmListFile2[] files = null;
                bli.CreateListEx(Names, (int)EdmCreateListExFlags.Edmclef_Nothing, ref cols, null);
                bli.GetFiles2(ref files);

                foreach (var file in files)
                {
                    var doc = new Document(file.mbsLockPath);
                    doc.FileId      = file.mlFileID;
                    doc.Version     = file.mlLatestVersion;
                    doc.Revision    = file.mbsRevisionName;
                    doc.FileState   = file.moCurrentState.mbsStateName;
                    doc.Description = (file.moColumnData as object[])?[0] as string ?? "Not found";
                    Files.Add(new FileDataViewModel(doc));
                }
            }

            //IEdmVault11 vault = (IEdmVault11)new EdmVault5();
            //EdmStrLst5 res = vault.BrowseForFile(0, (int)EdmBrowseFlag.EdmBws_ForOpen + (int)EdmBrowseFlag.EdmBws_PermitVaultFiles,
            //    "Select Files", "All Files (*.pdf,*.dxf,*.step)|*.pdf;*.dxf;*.step||", "", "", "Select Files");
            //if (res != null)
            //{
            //    IEdmPos5 pos = res.GetHeadPosition();
            //    List<string> paths = new List<string>();
            //    IEdmBatchListing4 bli = vault.CreateUtility(EdmUtility.EdmUtil_BatchList);
            //    while (pos.IsNull)
            //    {

            //        paths.Add(res.GetNext(pos));
            //        //bli.AddFile(res.GetNext(pos), default(DateTime), 0, 0);
            //    }

            //    string Names = "Description\nRevision";
            //    EdmListCol[] cols = null;
            //    EdmListFile2[] files = null;
            //    bli.CreateListEx(Names, (int)EdmCreateListExFlags.Edmclef_GetDrawings + (int)EdmCreateListExFlags.Edmclef_GetReferences + (int)EdmCreateListExFlags.Edmclef_ReturnReferences, ref cols, null);
            //    bli.GetFiles2(ref files);

            //    foreach (var file in files)
            //    {
            //        var doc = new Document(file.mbsLockPath);
            //        doc.FileId = file.mlFileID;
            //        doc.Version = file.mlLatestVersion;
            //        doc.Revision = file.mbsRevisionName;
            //        doc.FileState = file.moCurrentState.mbsStateName;
            //        doc.Description = (file.moColumnData as object[])?[0] as string ?? "Not found";
            //        Files.Add(new FileDataViewModel(doc));
            //    }

            //}
#endif
        }
コード例 #17
0
        public void BatchDelete(List<TaskParam> listType)
        {
            var batchDeleter = (IEdmBatchDelete2)HostingForm.Vault2.CreateUtility(EdmUtility.EdmUtil_BatchDelete);
            IEdmFolder5 ppoRetParentFolder;

            foreach (var fileName in listType)
            {
                if (fileName.Revision == "") continue;

                aFile = HostingForm.Vault1.GetFileFromPath(fileName.FullFilePath, out ppoRetParentFolder);
                aPos = aFile.GetFirstFolderPosition();
                aFolder = aFile.GetNextFolder(aPos);

                // Add selected file to the batch
                batchDeleter.AddFileByPath(fileName.FullFilePath);
            }

            // Move files and folder to the Recycle Bin
            batchDeleter.ComputePermissions(true, null);
            batchDeleter.CommitDelete(0, null);
        }
コード例 #18
0
        public void BatchUnLock(List<TaskParam> listType)
        {

            ppoSelection = new EdmSelItem[listType.Count];
 
            batchUnlocker = (IEdmBatchUnlock)HostingForm.Vault2.CreateUtility(EdmUtility.EdmUtil_BatchUnlock);

            RootFolder = HostingForm.Vault1.RootFolderPath;
            var i = 0;

            foreach (var fileName in listType)
            {
                var filePath = RootFolder + fileName.FolderPath + fileName.FileName;
                if (HostingForm.Vault1.GetFileFromPath(filePath, out ppoRetParentFolder) == null) continue;
                aFile = HostingForm.Vault1.GetFileFromPath(filePath, out ppoRetParentFolder);

                aPos = aFile.GetFirstFolderPosition();
                aFolder = aFile.GetNextFolder(aPos);

                ppoSelection[i] = new EdmSelItem();
                ppoSelection[i].mlDocID = aFile.ID;
                ppoSelection[i].mlProjID = aFolder.ID;

                i = i + 1;
            }

            // Add selections to the batch of files to check in
            batchUnlocker.AddSelection((EdmVault5)HostingForm.Vault1, ppoSelection);

            if ((batchUnlocker != null))
            {
                batchUnlocker.CreateTree(0, (int)EdmUnlockBuildTreeFlags.Eubtf_ShowCloseAfterCheckinOption + (int)EdmUnlockBuildTreeFlags.Eubtf_MayUnlock);
                fileList = (IEdmSelectionList6)batchUnlocker.GetFileList((int)EdmUnlockFileListFlag.Euflf_GetUnlocked + (int)EdmUnlockFileListFlag.Euflf_GetUndoLocked + (int)EdmUnlockFileListFlag.Euflf_GetUnprocessed);
                aPos = fileList.GetHeadPosition();

                while (!(aPos.IsNull))
                {
                    fileList.GetNext2(aPos, out poSel);
                }

                //retVal = batchUnlocker.ShowDlg(this.Handle.ToInt32());
                batchUnlocker.UnlockFiles(0, null);
            }
        }
コード例 #19
0
        //TODO: BatchGet
        public void BatchGet(List<TaskParam> listType)
        {
            batchGetter = (IEdmBatchGet)HostingForm.Vault2.CreateUtility(EdmUtility.EdmUtil_BatchGet);

            var i = 0;
            foreach (var taskVar in listType)
            {

                aFile = HostingForm.Vault1.GetFileFromPath(taskVar.FullFilePath, out ppoRetParentFolder);

                aPos = aFile.GetFirstFolderPosition();

                aFolder = aFile.GetNextFolder(aPos);

                batchGetter.AddSelectionEx((EdmVault5)HostingForm.Vault1, aFile.ID, aFolder.ID, taskVar.CurrentVersion);
            }

            //batchUnlocker.AddSelection((EdmVault5)vault, ppoSelection);

            if ((batchGetter != null))
            {
                batchGetter.CreateTree(0, (int)EdmGetCmdFlags.Egcf_Nothing);

                ////fileCount = batchGetter.FileCount;
                //fileList = (IEdmSelectionList6)batchGetter.GetFileList((int)EdmGetFileListFlag.Egflf_GetLocked + (int)EdmGetFileListFlag.Egflf_GetFailed + (int)EdmGetFileListFlag.Egflf_GetRetrieved + (int)EdmGetFileListFlag.Egflf_GetUnprocessed);

                //aPos = fileList.GetHeadPosition();

                ////str = "Getting " + fileCount + " files: ";
                //while (!(aPos.IsNull))
                //{
                //    fileList.GetNext2(aPos, out poSel);
                //    //str = str + Constants.vbLf + poSel.mbsPath;
                //}

                //MsgBox(str)

                //var retVal = batchGetter.ShowDlg(this.Handle.ToInt32());
                // No dialog if checking out only one file

                //if ((retVal))
                //{
                batchGetter.GetFiles(0, null);
                //}
            }
        }  
コード例 #20
0
ファイル: SwEpdm.cs プロジェクト: GitHubVents/AirVentsCad_old
        public static void GetIdPdm(string path, out string fileName, out int fileIdPdm, out int currentVerison, out List <string> configs, bool getFileCopy)
        {
            fileName       = null;
            fileIdPdm      = 0;
            currentVerison = 0;
            configs        = new List <string>();
            try
            {
                IEdmFolder5 oFolder;
                var         tries = 1;
m1:
                Thread.Sleep(500);
                path = new FileInfo(path).FullName;

                var edmFile5 = edmVault5.GetFileFromPath(path, out oFolder);

                if (oFolder == null)
                {
                    tries++;
                    if (tries > 10)
                    {
                        return;
                    }
                    goto m1;
                }

                if (getFileCopy)
                {
                    try
                    {
                        edmFile5.GetFileCopy(0, 0, oFolder.ID, (int)EdmGetFlag.EdmGet_RefsVerLatest);
                    }
                    catch (Exception exception)
                    {
                        Логгер.Ошибка($"Message - {exception.Message}\nPath - {path}\nStackTrace - {exception.StackTrace}", null, "GetIdPdm", "SwEpdm");
                        //MessageBox.Show(ex.Message + "\n" + ex.StackTrace);
                    }
                }

                fileName       = edmFile5.Name;
                fileIdPdm      = edmFile5.ID;
                currentVerison = edmFile5.CurrentVersion;
                EdmStrLst5 list = edmFile5.GetConfigurations();

                IEdmPos5 pos = default(IEdmPos5);
                pos = list.GetHeadPosition();
                string cfgName = null;
                while (!pos.IsNull)
                {
                    cfgName = list.GetNext(pos);
                    if (cfgName == "@")
                    {
                        continue;
                    }
                    configs.Add(cfgName);
                }
            }
            catch (Exception exception)
            {
                Логгер.Ошибка($"Message - {exception.Message}\nPath - {path}\nStackTrace - {exception.StackTrace}", null, "GetIdPdm", "SwEpdm");
                //MessageBox.Show(ex.Message + "\n" + ex.StackTrace);
            }
        }
コード例 #21
0
        public SldAsm GetAsmIndoFromFile(IEdmVault5 poVault, string filePath)
        {
            IEdmFolder5 opParentFolder;
            IEdmFile5   poFile = poVault.GetFileFromPath(filePath, out opParentFolder);

            if (poFile == null)
            {
                return(null);
            }
            IEdmVariableMgr5 varMgr = (IEdmVariableMgr5)poVault;

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

            IEdmEnumeratorVariable5 enumVar = poFile.GetEnumeratorVariable();

            if (enumVar == null)
            {
                return(null);
            }
            if (filePath == "")
            {
                return(null);
            }
            EdmStrLst5 cfgList = poFile.GetConfigurations();

            SldAsm asmPrd = new SldAsm();

            asmPrd.path  = filePath;
            asmPrd.amout = 1;


            if (varMgr.GetVariable("代号") != null)
            {
                object   tmpVar  = null;
                IEdmPos5 pos     = cfgList.GetHeadPosition();
                string   cfgName = null;
                while (!pos.IsNull)
                {
                    cfgName = cfgList.GetNext(pos);
                    enumVar.GetVar("代号", cfgName, out tmpVar);
                    if (tmpVar == null)
                    {
                        continue;
                    }
                    if (!tmpVar.ToString().Equals(""))
                    {
                        break;
                    }
                }
                if (tmpVar != null)
                {
                    asmPrd.number = tmpVar.ToString();
                }
                if (asmPrd.number.IndexOf(".") > 0 && asmPrd.number.IndexOf(".") < asmPrd.number.Length)
                {
                    asmPrd.ztdm = asmPrd.number.Substring(0, asmPrd.number.IndexOf("."));
                    asmPrd.zjdm = asmPrd.number.Substring(asmPrd.number.IndexOf(".") + 1);
                }
                else
                {
                    asmPrd.ztdm = asmPrd.zjdm = asmPrd.number;
                }
            }
            if (varMgr.GetVariable("名称") != null)
            {
                object   tmpVar  = null;
                IEdmPos5 pos     = cfgList.GetHeadPosition();
                string   cfgName = null;
                while (!pos.IsNull)
                {
                    cfgName = cfgList.GetNext(pos);
                    enumVar.GetVar("名称", cfgName, out tmpVar);
                    if (tmpVar == null)
                    {
                        continue;
                    }
                    if (!tmpVar.ToString().Equals(""))
                    {
                        break;
                    }
                }
                if (tmpVar != null)
                {
                    asmPrd.name = tmpVar.ToString();
                }
            }
            if (varMgr.GetVariable("设计") != null)
            {
                object   tmpVar  = null;
                IEdmPos5 pos     = cfgList.GetHeadPosition();
                string   cfgName = null;
                while (!pos.IsNull)
                {
                    cfgName = cfgList.GetNext(pos);
                    enumVar.GetVar("设计", cfgName, out tmpVar);
                    if (tmpVar == null)
                    {
                        continue;
                    }
                    if (!tmpVar.ToString().Equals(""))
                    {
                        break;
                    }
                }
                if (tmpVar != null)
                {
                    asmPrd.bzr = tmpVar.ToString();
                }
            }
            if (varMgr.GetVariable("设计日期") != null)
            {
                object   tmpVar  = null;
                IEdmPos5 pos     = cfgList.GetHeadPosition();
                string   cfgName = null;
                while (!pos.IsNull)
                {
                    cfgName = cfgList.GetNext(pos);
                    enumVar.GetVar("设计日期", cfgName, out tmpVar);
                    if (tmpVar == null)
                    {
                        continue;
                    }
                    if (!tmpVar.ToString().Equals(""))
                    {
                        break;
                    }
                }
                if (tmpVar != null)
                {
                    asmPrd.bzsj = tmpVar.ToString();
                }
                if (asmPrd.bzsj.IndexOf(" ") >= 0)
                {
                    asmPrd.bzsj = asmPrd.bzsj.Substring(0, asmPrd.bzsj.IndexOf(" "));
                }
            }
            if (varMgr.GetVariable("批准") != null)
            {
                object   tmpVar  = null;
                IEdmPos5 pos     = cfgList.GetHeadPosition();
                string   cfgName = null;
                while (!pos.IsNull)
                {
                    cfgName = cfgList.GetNext(pos);
                    enumVar.GetVar("批准", cfgName, out tmpVar);
                    if (tmpVar == null)
                    {
                        continue;
                    }
                    if (!tmpVar.ToString().Equals(""))
                    {
                        break;
                    }
                }
                if (tmpVar != null)
                {
                    asmPrd.pzr = tmpVar.ToString();
                }
            }
            if (varMgr.GetVariable("批准日期") != null)
            {
                object   tmpVar  = null;
                IEdmPos5 pos     = cfgList.GetHeadPosition();
                string   cfgName = null;
                while (!pos.IsNull)
                {
                    cfgName = cfgList.GetNext(pos);
                    enumVar.GetVar("批准日期", cfgName, out tmpVar);
                    if (tmpVar == null)
                    {
                        continue;
                    }
                    if (!tmpVar.ToString().Equals(""))
                    {
                        break;
                    }
                }
                if (tmpVar != null)
                {
                    asmPrd.pzsj = tmpVar.ToString();
                }
                if (asmPrd.pzsj.IndexOf(" ") >= 0)
                {
                    asmPrd.pzsj = asmPrd.pzsj.Substring(0, asmPrd.pzsj.IndexOf(" "));
                }
            }
            if (varMgr.GetVariable("阶段标记") != null)
            {
                object   tmpVar  = null;
                IEdmPos5 pos     = cfgList.GetHeadPosition();
                string   cfgName = null;
                while (!pos.IsNull)
                {
                    cfgName = cfgList.GetNext(pos);
                    enumVar.GetVar("阶段标记", cfgName, out tmpVar);
                    if (tmpVar == null)
                    {
                        continue;
                    }
                    if (!tmpVar.ToString().Equals(""))
                    {
                        break;
                    }
                }
                if (tmpVar != null)
                {
                    asmPrd.jdbj = tmpVar.ToString();
                }
            }

            if (varMgr.GetVariable("设备型号") != null)
            {
                object   tmpVar  = null;
                IEdmPos5 pos     = cfgList.GetHeadPosition();
                string   cfgName = null;
                while (!pos.IsNull)
                {
                    cfgName = cfgList.GetNext(pos);
                    enumVar.GetVar("设备型号", cfgName, out tmpVar);
                    if (tmpVar == null)
                    {
                        continue;
                    }
                    if (!tmpVar.ToString().Equals(""))
                    {
                        break;
                    }
                }
                if (tmpVar != null)
                {
                    asmPrd.sbxh = tmpVar.ToString();
                }
            }
            if (varMgr.GetVariable("Project Name") != null)
            {
                object   tmpVar  = null;
                IEdmPos5 pos     = cfgList.GetHeadPosition();
                string   cfgName = null;
                while (!pos.IsNull)
                {
                    cfgName = cfgList.GetNext(pos);
                    enumVar.GetVar("Project Name", cfgName, out tmpVar);
                    if (tmpVar == null)
                    {
                        continue;
                    }
                    if (!tmpVar.ToString().Equals(""))
                    {
                        break;
                    }
                }
                if (tmpVar != null)
                {
                    asmPrd.projName = tmpVar.ToString();
                }
            }
            return(asmPrd);
        }