public TreeNode MakeHierarchy(ref IEnumerable <Folder> allFolders, ref Dictionary <string, TreeNode> existFoldersInTree, Folder folder, FolderType folderType, ref StringBuilder path) { TreeNode n = new TreeNode(); Folder fParent = new Folder(); foreach (Folder f in allFolders) { if (f.Id == folder.ParentId) { fParent = f; FolderType newFolderType = ClientRequests.GetFolderType(f.Type); n = MakeHierarchy(ref allFolders, ref existFoldersInTree, f, newFolderType, ref path); break; } } path.Append(folder.Name + "\\"); foreach (var temp in existFoldersInTree) { if (temp.Key == path.ToString()) { return(temp.Value); } } TreeNode newNode = new TreeNode(folder.Name); existFoldersInTree.Add(path.ToString(), newNode); int count = 0; try { count = ClientRequests.GetCountLetterInFolder(folder.Id); } catch (Exception ex) { NLogger.Logger.Trace(ex.ToString()); } if (count > 0) { newNode.Text += " " + count.ToString(); newNode.NodeFont = new Font(foldersTV.Font, FontStyle.Bold);; } if (folder.ParentId == Guid.Empty) { foldersTV.Nodes.Add(newNode); } else { n.Nodes.Add(newNode); } _currentPrivateFoldersInTree.Add(newNode.FullPath, folder); _currentPrivateFoldersTypeInTree.Add(newNode.FullPath, folderType); return(newNode); }
private void InitializeMakeHierarchy(ref IEnumerable <Folder> folders, ref Dictionary <string, TreeNode> _existFoldersInTree, ref Dictionary <string, Folder> _currentFoldersInTree) { List <Guid> folderUsed = new List <Guid>(); _existFoldersInTree = new Dictionary <string, TreeNode>(); _currentFoldersInTree = new Dictionary <string, Folder>(); foreach (Folder folder in folders) { if (!folderUsed.Contains(folder.Id)) { StringBuilder path = new StringBuilder(); FolderType folderType = ClientRequests.GetFolderType(folder.Type); MakeHierarchy(ref folders, ref _existFoldersInTree, folder, folderType, ref path, ref _currentFoldersInTree); } } }
private void InitializeTreeView() { foldersTV.Nodes.Clear(); IEnumerable <Folder> privateFolder = ClientRequests.GetAllWorkerFolders(((ApplicationState)ServiceProvider.GetService(typeof(ApplicationState))).Worker.Id); List <Guid> folderUsed = new List <Guid>(); _existPrivateFoldersInTree = new Dictionary <string, TreeNode>(); _currentPrivateFoldersInTree = new Dictionary <string, Folder>(); _currentPrivateFoldersTypeInTree = new Dictionary <string, FolderType>(); foreach (Folder folder in privateFolder) { if (!folderUsed.Contains(folder.Id)) { StringBuilder path = new StringBuilder(); FolderType folderType = ClientRequests.GetFolderType(folder.Type); MakeHierarchy(ref privateFolder, ref _existPrivateFoldersInTree, folder, folderType, ref path); } } IEnumerable <Folder> sharedFolder = ClientRequests.GetAllWorkerFolders(Guid.Empty); folderUsed = new List <Guid>(); _existSharedFoldersInTree = new Dictionary <string, TreeNode>(); _currentSharedFoldersInTree = new Dictionary <string, Folder>(); foreach (Folder folder in sharedFolder) { if (!folderUsed.Contains(folder.Id)) { StringBuilder path = new StringBuilder(); FolderType folderType = ClientRequests.GetFolderType(folder.Type); MakeHierarchy(ref sharedFolder, ref _existSharedFoldersInTree, folder, folderType, ref path); } } }