private List <QvDocumentAndFolders> SourceDocumentNodes(QMS_API.AgentsQmsApiService qmsApiService, QvDocumentAndFolders sourceDocumentFolder, string relativePath) { var ret = new List <QvDocumentAndFolders>(); try { // retrieve all source document nodes of the given folder and under the specified relative path List <DocumentNode> sourceDocumentNodes = qmsApiService.GetSourceDocumentNodes(sourceDocumentFolder.DocumentFolder.Services.QDSID, sourceDocumentFolder.DocumentFolder.ID, relativePath); foreach (DocumentNode sourceDocumentNode in sourceDocumentNodes.OrderByDescending(x => x.IsSubFolder).ThenBy(x => x.Name)) { var node = new QvDocumentAndFolders { DocumentNode = sourceDocumentNode }; // print all sub nodes of the current source document node if it represents a folder if (sourceDocumentNode.IsSubFolder) { node.DocumentNodes = SourceDocumentNodes(qmsApiService, sourceDocumentFolder, relativePath + "\\" + sourceDocumentNode.Name); } ret.Add(node); } } catch (Exception e) { Console.WriteLine(e); } return(ret); }
private List <QvDocumentAndFolders> GetAllDocumentsAndFolders(QMS_API.AgentsQmsApiService qmsApiService, ServiceInfo info) { var ret = new List <QvDocumentAndFolders>(); try { List <DocumentFolder> sourceDocumentsFolders = qmsApiService.GetSourceDocumentFolders(info.ID, DocumentFolderScope.General | DocumentFolderScope.Services); foreach (DocumentFolder sourceDocumentFolder in sourceDocumentsFolders.OrderBy(x => x.General.Path)) { var folder = new QvDocumentAndFolders { DocumentFolder = sourceDocumentFolder }; // print all sub nodes of the current source document folder folder.DocumentNodes = SourceDocumentNodes(qmsApiService, folder, string.Empty); ret.Add(folder); } } catch (Exception e) { Console.WriteLine(e); } return(ret); }