コード例 #1
0
        private List <dtoNodeFolderItem> CreateFolderNodes(dtoNodeFolderItem father, dtoFolderTreeItem folder, long sizeToMove, List <long> idAvailable, Boolean forUpload)
        {
            List <dtoNodeFolderItem> results = new List <dtoNodeFolderItem>();

            dtoNodeFolderItem cNode    = CreateItemNode(father, folder, sizeToMove, idAvailable, forUpload);
            dtoNodeFolderItem openNode = CreateOpenNode(cNode, folder.Children.Any());

            results.Add(openNode);
            results.Add(cNode);
            if (folder.Children.Any(c => idAvailable.Contains(c.Id)))
            {
                results.Add(new dtoNodeFolderItem()
                {
                    Type = NodeType.OpenChildren
                });
                folder.Children.Where(c => idAvailable.Contains(c.Id)).ToList().ForEach(n => results.AddRange(CreateFolderNodes(openNode, n, sizeToMove, idAvailable, forUpload)));
                results.Add(new dtoNodeFolderItem()
                {
                    Type = NodeType.CloseChildren
                });
            }
            results.Add(new dtoNodeFolderItem()
            {
                Type = NodeType.CloseNode
            });
            return(results);
        }
コード例 #2
0
        private dtoNodeFolderItem CreateItemNode(dtoNodeFolderItem father, dtoFolderTreeItem folder, long sizeToMove, List <long> idAvailable, Boolean forUpload)
        {
            dtoNodeFolderItem node = new dtoNodeFolderItem()
            {
                Type = NodeType.Item, IsCurrent = folder.IsCurrent
            };

            node.Id         = folder.Id;
            node.Name       = folder.Name;
            node.IsHome     = folder.IsHome;
            node.Selected   = folder.IsCurrent;
            node.Selectable = (sizeToMove == 0 || folder.ValidateSpace(sizeToMove, forUpload));
            return(node);
        }
コード例 #3
0
        private dtoNodeFolderItem CreateOpenNode(dtoNodeFolderItem owner, Boolean hasChildren)
        {
            dtoNodeFolderItem node = new dtoNodeFolderItem()
            {
                Type = NodeType.OpenItemNode
            };

            node.Id         = owner.Id;
            node.Name       = owner.Name;
            node.IsEmpty    = hasChildren;
            node.IsCurrent  = owner.IsCurrent;
            node.IsEmpty    = !hasChildren;
            node.Selectable = owner.Selectable;
            node.Selected   = owner.Selected;
            return(node);
        }
コード例 #4
0
        private void InitializeView(long idFolder, RepositoryIdentifier identifier, ModuleRepository module, liteRepositorySettings settings, litePerson uploader)
        {
            Boolean           admin = module.ManageItems || module.Administration;
            dtoContainerQuota quota = Service.FolderGetHomeAvailableSize(View.GetRepositoryDiskPath(), settings, module, identifier);

            View.AllowUploadToFolder = false;
            View.AllowUpload         = (quota != null && quota.HasAllowedSpace() && (module.Administration || module.ManageItems || module.UploadFile));
            List <dtoNodeFolderItem> folders       = Service.GetFoldersForUpload(View.GetRepositoryDiskPath(), idFolder, UserContext.CurrentUserID, identifier, module, View.GetUnknownUserName(), View.GetRootFolderFullname());
            dtoNodeFolderItem        currentFolder = (idFolder == 0 ? null : folders.Where(f => f.Id == idFolder).FirstOrDefault());

            if (quota != null)
            {
                View.AllowUploadToFolder = (quota.HasAllowedSpace() && (module.Administration || module.ManageItems || module.UploadFile || (currentFolder != null && currentFolder.Selectable && Service.FolderAllowUpload(idFolder) && module.ViewItemsList)));
            }
            View.LoadFolderSelector(identifier, idFolder, (idFolder == 0 || currentFolder.Id == 0) ? View.GetRootFolderFullname() : currentFolder.Name, quota, folders);
        }