public IEnumerable <TreeNode <KeyValuePair <string, string> > > GetFolderTrees(string reposiotryId) { return(HandleFault(() => { var service = GetService(); getRepositoryInfoRequest request = new getRepositoryInfoRequest(reposiotryId, null); var response = service.GetRepositoryInfo(request); var getFolderTreeRequest = new getFolderTreeRequest(reposiotryId, response.repositoryInfo.rootFolderId, null, null, null, null, null, null, GetcmisExtensionType()); var folders = service.GetFolderTree(getFolderTreeRequest).objects; List <cmisObjectInFolderContainerType> allFolders = new List <cmisObjectInFolderContainerType>(); //ignore the root folder. foreach (var item in folders) { if (item.children != null) { EnumerateFolders(item.children, ref allFolders); } } return allFolders.Select(it => ToTreeNode(it)); })); }
public getFolderTreeResponse GetFolderTree(getFolderTreeRequest request) { var resultList = new cmisObjectListType(); var repository = ModelHelper.GetRepository(request.repositoryId); cmisObjectInFolderContainerType root = new cmisObjectInFolderContainerType(); IEnumerable <Kooboo.CMS.Content.Models.TextFolder> childFolders = null; if (request.folderId == "/") { root.objectInFolder = new cmisObjectInFolderType() { pathSegment = "/" }; childFolders = _textFolderManager.All(repository, null); } else { var textFolder = ModelHelper.GetTextFolder(request.repositoryId, request.folderId); root.objectInFolder = ToPathedCmisObject(textFolder); childFolders = _textFolderManager.ChildFolders(textFolder); } int?maxDepth = null; if (!string.IsNullOrEmpty(request.depth)) { maxDepth = request.depth.As <int>(); } root.children = childFolders.Select(it => ToPathedCmisObjectContainer(it, maxDepth)).Where(it => it != null).ToArray(); return(new getFolderTreeResponse(new[] { root })); }