public static dynamic GetNoRecordFiles(List <string> engNums) { var projectIdForEngNum = GetProjectIdForEngNum(engNums); dynamic noRcdEngFldrNFiles = new List <ExpandoObject>(); foreach (var eng in projectIdForEngNum) { var fileWithPath = IM.Mgr.WsUtility.GetFileWithPath(WsUtility.GetWsObjectTypeId(WsObjectType.Workspace, eng.EngId)); dynamic engNFldrs = new ExpandoObject(); engNFldrs.EngNum = eng.EngNum; engNFldrs.Folders = new List <ExpandoObject>(); foreach (var path in fileWithPath) { var fldrPath = path.Key; if (PathToIgnore_NoRecord.Exists(x => fldrPath.StartsWith(x, StringComparison.OrdinalIgnoreCase))) { continue; } if (path.Value == null || path.Value.Count == 0) { continue; } dynamic fldrNFiles = new ExpandoObject(); fldrNFiles.Path = fldrPath; fldrNFiles.Files = new List <ExpandoObject>(); foreach (var file in path.Value) { if (file.IsRecord || file.IsDeleted) { continue; } string strFileDesc = file.Description; string strFileExtn = file.Extn; dynamic f = new ExpandoObject(); f.Number = file.Number; f.Name = strFileDesc.FileNameWithExtn(strFileExtn); fldrNFiles.Files.Add(f); } if (fldrNFiles.Files != null && fldrNFiles.Files.Count > 0) { engNFldrs.Folders.Add(fldrNFiles); } } //if (engNFldrs.Folders != null && engNFldrs.Folders.Count > 0) noRcdEngFldrNFiles.Add(engNFldrs); } return(noRcdEngFldrNFiles); }
public static void Move_YrEnd_Audit_RET_N_ENG_To_ElecWp(double retDocNum, double engDocNum, double engNum) { IManDocument imRetDoc = WsUtility.GetObjectByID <IManDocument>(WsUtility.GetWsObjectTypeId(WsObjectType.File, retDocNum)); IManDocument imEngDoc = WsUtility.GetObjectByID <IManDocument>(WsUtility.GetWsObjectTypeId(WsObjectType.File, engDocNum)); IManWorkspace imWs = WsUtility.GetObjectByID <IManWorkspace>(WsUtility.GetWsObjectTypeId(WsObjectType.Workspace, engNum)); IManDocumentFolder imFldrPeriodEndAudit = WsUtility.GetWsFldr(imWs, WsFldrType.PeriodEndAudit); IManDocumentFolder imRetFldr = null; IManDocumentFolder imEngFldr = null; IManDocumentFolder imElecWpFldr = null; foreach (IManDocumentFolder docFldr in imFldrPeriodEndAudit.SubFolders) { if (docFldr.Name.Equals("RET Files", StringComparison.OrdinalIgnoreCase)) { imRetFldr = docFldr; } else if (docFldr.Name.Equals("ENG Files", StringComparison.OrdinalIgnoreCase)) { imEngFldr = docFldr; } else if (docFldr.Name.Equals("Electronic Workpapers (Maintained Outside of eAudIT)", StringComparison.OrdinalIgnoreCase)) { imElecWpFldr = docFldr; } } IManDocuments imElecWpDocs = imElecWpFldr == null ? null : (IManDocuments)imElecWpFldr.Contents; IManDocuments imRetDocs = imRetFldr == null ? null : (IManDocuments)imRetFldr.Contents; IManDocuments imEngDocs = imEngFldr == null ? null : (IManDocuments)imEngFldr.Contents; if (imElecWpDocs != null) { imElecWpDocs.AddDocumentReference(imRetDoc); } if (imRetDocs != null) { imRetDocs.RemoveByObject(imRetDoc); } if (imElecWpDocs != null) { imElecWpDocs.AddDocumentReference(imEngDoc); } if (imEngDocs != null) { imEngDocs.RemoveByObject(imEngDoc); } }
public static List <WsModel> GetEngByEngNum(string engNum, WsLoadType wsLoadType, bool isAdmin = false) { var projectIdForEngNum = GetProjectIdForEngNum(new List <string> { engNum }); if (projectIdForEngNum.Count == 0) { return(null); } var wsId = WsUtility.GetWsObjectTypeId(WsObjectType.Workspace, projectIdForEngNum[0].EngId); //return GetWs(wsId); var result = IM.Mgr.Workspace.GetWs(wsId, wsLoadType, isAdmin: isAdmin); return(result); }
public static WsFile GetWsFile(double fileNum) { IManDocument imDoc = WsUtility.GetObjectByID <IManDocument>(WsUtility.GetWsObjectTypeId(WsObjectType.File, fileNum)); return(IM.Mgr.Workspace.GetWsFile(imDoc)); }
public static void UploadDocument(string engNum, string fileNameWithLocalPath, string iMFolderPath) { // var projectIdForEngNum = WsUtility.GetEngIdForEngNum(new List <string> { engNum }); if (projectIdForEngNum.Count == 0) { return; } var wsId = WsUtility.GetWsObjectTypeId(WsObjectType.Workspace, projectIdForEngNum[0].EngId); // IManWorkspace imWs = WsUtility.GetObjectByID <IManWorkspace>(wsId, isAdmin: true); IManDocumentFolder imFldr = GetWsFldr(imWs, iMFolderPath); IManDocument imDoc = imFldr.Database.CreateDocument(); WsProfile wsProfile = Workspace.GetWsProfile(imWs.Profile, imWs); imDoc.SetAttributeByID(imProfileAttributeID.imProfileDescription, Path.GetFileName(fileNameWithLocalPath)); imDoc.SetAttributeByID(imProfileAttributeID.imProfileType, GetWsDocType(imWs, Convert.ToString(imDoc.GetAttributeValueByID(imProfileAttributeID.imProfileDescription)))); imDoc.SetAttributeByID(imProfileAttributeID.imProfileAuthor, imWs.Owner.Name); imDoc.SetAttributeByID(imProfileAttributeID.imProfileOperator, imWs.Owner.Name); imDoc.SetAttributeByID(imProfileAttributeID.imProfileClass, AmConst.CONST_IMPROFILECLASS); imDoc.SetAttributeByID(imProfileAttributeID.imProfileCustom7, AmConst.CONST_IMPROFILECUSTOM7); imDoc.SetAttributeByID(imProfileAttributeID.imProfileCustom1, wsProfile.Client); imDoc.SetAttributeByID(imProfileAttributeID.imProfileCustom2, wsProfile.EngNum); if (!string.IsNullOrWhiteSpace(wsProfile.EngFunction)) { imDoc.SetAttributeByID(imProfileAttributeID.imProfileCustom3, wsProfile.EngFunction); } else { imDoc.SetAttributeByID(imProfileAttributeID.imProfileCustom3, AmConst.CONST_IMPROFILECUSTOM3); } foreach (IManAdditionalProperty imAddProp in imFldr.AdditionalProperties) { if (imAddProp == null) { continue; } int attID = Convert.ToInt32(imAddProp.Name.Substring(imAddProp.Name.LastIndexOf('_') + 1)); imProfileAttributeID imProfAttr = (imProfileAttributeID)attID; if (imAddProp.Value != AmConst.CONST_WORKSPACE_VALUE) { //Date if (imProfAttr == imProfileAttributeID.imProfileCustom21 || imProfAttr == imProfileAttributeID.imProfileCustom22 || imProfAttr == imProfileAttributeID.imProfileCustom23 || imProfAttr == imProfileAttributeID.imProfileCustom24) { DateTime parsedTime; if (DateTime.TryParse(imAddProp.Value, out parsedTime)) { imDoc.SetAttributeByID(imProfAttr, parsedTime); } else { imDoc.SetAttributeByID(imProfAttr, null); } } //Boolean else if (imProfAttr == imProfileAttributeID.imProfileCustom25 || imProfAttr == imProfileAttributeID.imProfileCustom26 || imProfAttr == imProfileAttributeID.imProfileCustom27 || imProfAttr == imProfileAttributeID.imProfileCustom28) { if (imAddProp.Value != null && imAddProp.Value.ToLower() == "true") { imDoc.SetAttributeByID(imProfAttr, true); } else { imDoc.SetAttributeByID(imProfAttr, false); } } else { imDoc.SetAttributeByID(imProfAttr, imAddProp.Value); } } else { imDoc.SetAttributeByID(imProfAttr, imFldr.Workspace.Profile.GetAttributeValueByID(imProfAttr)); } } //string tempFile = System.IO.Path.GetTempFileName(); //System.IO.File.WriteAllText(tempFile, wsLog.WsLogUseWhat == WsLogUseWhat.Email ? wsLog.MailBody : wsLog.ToString()); IManCheckinResult checkInResult = imDoc.CheckInWithResults(fileNameWithLocalPath, imCheckinDisposition.imCheckinNewDocument, imCheckinOptions.imDontKeepCheckedOut); if (checkInResult.Succeeded) { AddSecurityToDoc(imDoc, imFldr); IManDocuments imDocs = (IManDocuments)imFldr.Contents; if (null != imDocs) { imDocs.AddDocumentReference(checkInResult.Result); } } else { //throw new LogOnlyException(string.Format("Error creating IManage log file => {0}", checkInResult.ErrorMessage)); //AuditManager.Common.DbLog.LogToElmah(string.Format("Error creating IManage log file => {0}", checkInResult.ErrorMessage), httpContext); } //AuditManager.Common.DbLog.LogToElmah(string.Format("Error creating IManage log file => {0}", "checkInResult.ErrorMessage"), httpContext); //throw new LogOnlyException(string.Format("Error creating IManage log file => {0}", "checkInResult.ErrorMessage")); }