Пример #1
0
        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);
        }
Пример #2
0
        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);
            }
        }
Пример #3
0
        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);
        }
Пример #4
0
        public static WsFile GetWsFile(double fileNum)
        {
            IManDocument imDoc = WsUtility.GetObjectByID <IManDocument>(WsUtility.GetWsObjectTypeId(WsObjectType.File, fileNum));

            return(IM.Mgr.Workspace.GetWsFile(imDoc));
        }
Пример #5
0
        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"));
        }