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); }
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); }
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); }
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); }