public void BatchAddFiles(List<TaskParam> listType) { poAdder = (IEdmBatchAdd2)HostingForm.Vault2.CreateUtility(EdmUtility.EdmUtil_BatchAdd); //var newFolder = vault.RootFolderPath; RootFolder = HostingForm.Vault1.RootFolderPath; // poAdder.AddFolderPath(newFolder, 0, (int)EdmBatchAddFolderFlag.Ebaff_Nothing); foreach (var fileName in listType) { poAdder.AddFileFromPathToPath(RootFolder + fileName.FolderPath + fileName.FileName, RootFolder + fileName.FolderPath, 0); } //poAdder.ShowDlg(this.Handle.ToInt32(), (int)EdmAddFileDlgFlag.Eafdf_Nothing, "Files and folders in the batch:", "Batch Items"); var edmFileInfo = new EdmFileInfo[listType.Count]; poAdder.CommitAdd(0, null, 0); //var idx = edmFileInfo.GetLowerBound(0); //string msg = ""; //while (idx <= edmFileInfo.GetUpperBound(0)) //{ // string row = null; // row = "(" + edmFileInfo[idx].mbsPath + ") arg = " + Convert.ToString(edmFileInfo[idx].mlArg); // if (edmFileInfo[idx].mhResult == 0) // { // row = row + " status = OK "; // } // else // { // string oErrName = ""; // string oErrDesc = ""; // vault.GetErrorString(edmFileInfo[idx].mhResult, out oErrName, out oErrDesc); // row = row + " status = " + oErrName; // } // idx = idx + 1; // msg = msg + " " + row; //} }
public static void AddFiles(IEdmVault7 vault, List <Files.Info> files) { Logger.Add($"Добавление в PDM {files?.Count} файлов"); string msg = ""; try { var result = default(bool); poAdder = (IEdmBatchAdd)vault.CreateUtility(EdmUtility.EdmUtil_BatchAdd); foreach (var file in files) { fileNameErr = file.FolderPath + "\\" + file.FileName; try { poAdder.AddFileFromPathToPath(file.FolderPath + "\\" + file.ConvertFile, file.FolderPath, 0, "", 0); } catch (Exception ex) { Logger.Add($"Ошибка при добавлении: {ex.Message} Path: {file.FullFilePath} IdPDM: {file.IdPDM} FolderID: {file.FolderID} Version: {file.CurrentVersion}"); } } var edmFileInfo = new EdmFileInfo[files.Count]; result = Convert.ToBoolean(poAdder.CommitAdd(0, edmFileInfo, 0)); var idx = edmFileInfo.GetLowerBound(0); while (idx <= edmFileInfo.GetUpperBound(0)) { string row = null; row = "(" + edmFileInfo[idx].mbsPath + ") arg = " + Convert.ToString(edmFileInfo[idx].mlArg); if (edmFileInfo[idx].mhResult == 0) { row = row + " status = OK " + edmFileInfo[idx].mbsPath; } else { string oErrName = ""; string oErrDesc = ""; vault.GetErrorString(edmFileInfo[idx].mhResult, out oErrName, out oErrDesc); row = row + " status = " + oErrName; } idx = idx + 1; msg = msg + "\n" + row; } // statusChank = true; } catch (COMException ex) { Logger.Add("ERROR BatchAddFiles " + msg + ", file: " + fileNameErr + " HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message); // statusChank = false; } #region To delete //try //{ // var result = default(bool); // poAdder = (IEdmBatchAdd)vault.CreateUtility(EdmUtility.EdmUtil_BatchAdd); // foreach (var fileName in listType) // { // fileNameErr = fileName.FolderPath + "\\" + fileName.FileName; // poAdder.AddFileFromPathToPath(fileName.FolderPath + "\\" + fileName.ConvertFile, fileName.FolderPath, 0, "", 0); // } // var edmFileInfo = new EdmFileInfo[listType.Count]; // result = Convert.ToBoolean(poAdder.CommitAdd(0, edmFileInfo, 0)); // var idx = edmFileInfo.GetLowerBound(0); // while (idx <= edmFileInfo.GetUpperBound(0)) // { // string row = null; // row = "(" + edmFileInfo[idx].mbsPath + ") arg = " + Convert.ToString(edmFileInfo[idx].mlArg); // if (edmFileInfo[idx].mhResult == 0) // { // row = row + " status = OK " + edmFileInfo[idx].mbsPath; // } // else // { // string oErrName = ""; // string oErrDesc = ""; // vault.GetErrorString(edmFileInfo[idx].mhResult, out oErrName, out oErrDesc); // row = row + " status = " + oErrName; // } // idx = idx + 1; // msg = msg + "\n" + row; // } // statusChank = true; //} //catch (COMException ex) //{ // Logger.ToLog("ERROR BatchAddFiles " + msg + ", file: " + fileNameErr + " HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message, 10001); // statusChank = false; //} #endregion }