Example #1
0
        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);
        }
Example #2
0
        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);
                }
            }
        }
Example #3
0
        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);
                }
            }
        }