コード例 #1
0
ファイル: CmisWcfClient.cs プロジェクト: nguyenhuy2911/CMS
        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));
            }));
        }
コード例 #2
0
        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 }));
        }