/// <summary> /// Update or Create document /// </summary> /// <param name="documentSaveRequest"></param> /// <returns></returns> public static DocumentSaveResponse DocumentSave(DocumentSaveRequest documentSaveRequest) { var repDocSaveResp = RepDocument.Save( documentSaveRequest.headerInfo, documentSaveRequest.inDocument, documentSaveRequest.saveType); var documentSaveResponse = new DocumentSaveResponse(); documentSaveResponse.document = documentSaveRequest.inDocument; documentSaveResponse.document.UID = repDocSaveResp; if (repDocSaveResp == 0) { documentSaveResponse.response = new ResponseStatus(MessageType.Error); documentSaveResponse.response.Message = "Error Saving Document."; documentSaveResponse.response.Successful = false; documentSaveResponse.response.ReturnCode = -0010; } else { documentSaveResponse.response = new ResponseStatus(MessageType.Informational); } return(documentSaveResponse); }
/// <summary> /// Load folder into FCM Database and into FCM folder /// </summary> /// <param name="sourceFolder"></param> /// <param name="uioutput"></param> /// <param name="parentUID"></param> /// <param name="sequenceNumber"></param> /// <param name="headerInfo"></param> /// <returns></returns> static public ResponseStatus LoadFolder(string sourceFolder, IOutputMessage uioutput, int parentUID, int sequenceNumber, HeaderInfo headerInfo) { ResponseStatus response = new ResponseStatus(); response.Message = "Folder loaded successfully."; if (!Directory.Exists(sourceFolder)) { response.ReturnCode = -0010; response.ReasonCode = -0001; response.Message = "Source folder does not exist."; response.UniqueCode = "E00.00.0001"; response.Icon = MessageBoxIcon.Error; return(response); } string[] folderNameSplit = sourceFolder.Split('\\'); string folderName = folderNameSplit[folderNameSplit.Length - 1]; uioutput.Activate(); string[] files = Directory.GetFiles(sourceFolder); // Create folder that contains files and keep the parent // // ... Model.ModelDocument.Document folder = new Model.ModelDocument.Document(); if (folderName.Length >= 7) { folder.CUID = folderName.Substring(0, 7); } else { folder.CUID = folderName; } folder.FileName = folderName; folder.Comments = "Loaded by batch"; folder.Name = folderName; folder.DisplayName = folderName; folder.FKClientUID = 0; folder.IssueNumber = 0; string refPath = MakHelperUtils.getReferenceFilePathName(sourceFolder); if (string.IsNullOrEmpty(refPath)) { response.ReturnCode = -0010; response.ReasonCode = -0002; response.Message = "Folder selected is not under managed template folder."; response.UniqueCode = "E00.00.0001"; return(response); } folder.Location = refPath; // Store the folder being loaded at the root level // folder.Location = MakConstant.SYSFOLDER.TEMPLATEFOLDER; folder.ParentUID = parentUID; folder.SequenceNumber = 0; folder.SourceCode = "FCM"; folder.UID = 0; folder.RecordType = MakHelperUtils.RecordType.FOLDER; folder.DocumentType = MakHelperUtils.DocumentType.FOLDER; folder.SimpleFileName = folder.Name; folder.FileExtension = "FOLDER"; folder.IsProjectPlan = "N"; // parentUID = folder.Save(headerInfo, MakHelperUtils.SaveType.NEWONLY); parentUID = RepDocument.Save(headerInfo, folder, MakHelperUtils.SaveType.NEWONLY); // Store each file // foreach (string file in files) { #region File Processing string name = Path.GetFileName(file); string fileName = Path.GetFileNameWithoutExtension(file); string fileExtension = Path.GetExtension(file); string validExtensions = ".doc .docx .xls .xlsx .pdf .dotx"; // Not every extension will be loaded // if (!validExtensions.Contains(fileExtension)) { continue; } string fileNameExt = Path.GetFileName(file); string simpleFileName = fileNameExt; if (fileNameExt.Length > 10) { simpleFileName = fileNameExt.Substring(10).Trim(); } Model.ModelDocument.Document document = new Model.ModelDocument.Document(); document.CUID = fileName.Substring(0, 6); document.FileName = fileNameExt; //string refPath = // Utils.getReferenceFilePathName(sourceFolder); document.Location = refPath; string issue = "1"; document.IssueNumber = Convert.ToInt32(issue); try { issue = fileName.Substring(7, 2); document.IssueNumber = Convert.ToInt32(issue); } catch (Exception ex) { LogFile.WriteToTodaysLogFile(ex.ToString()); } document.Name = fileName; document.SimpleFileName = simpleFileName; document.DisplayName = simpleFileName; document.SequenceNumber = sequenceNumber; document.ParentUID = parentUID; document.Comments = "Loaded via batch"; document.SourceCode = "FCM"; document.FKClientUID = 0; document.RecordType = MakHelperUtils.RecordType.DOCUMENT; document.FileExtension = fileExtension; document.Status = FCMUtils.FCMConstant.DocumentStatus.ACTIVE; document.IsProjectPlan = "N"; switch (fileExtension) { case ".doc": document.DocumentType = MakHelperUtils.DocumentType.WORD; break; case ".docx": document.DocumentType = MakHelperUtils.DocumentType.WORD; break; case ".dotx": document.DocumentType = MakHelperUtils.DocumentType.WORD; break; case ".xls": document.DocumentType = MakHelperUtils.DocumentType.EXCEL; break; case ".xlsx": document.DocumentType = MakHelperUtils.DocumentType.EXCEL; break; case ".pdf": document.DocumentType = MakHelperUtils.DocumentType.PDF; break; default: document.DocumentType = MakHelperUtils.DocumentType.UNDEFINED; break; } // document.Save(headerInfo, MakHelperUtils.SaveType.NEWONLY); RepDocument.Save(headerInfo, document, MakHelperUtils.SaveType.NEWONLY); uioutput.AddOutputMessage(document.Name, "", userID); sequenceNumber++; #endregion File Processing } // Recursion removed // string[] folders = Directory.GetDirectories(sourceFolder); foreach (string directory in folders) { string name = Path.GetFileName(directory); LoadFolder(directory, uioutput, parentUID, 0, headerInfo); } return(response); }