コード例 #1
0
        public string BuildHtmlDirTree(int root)
        {
            string success;
            DirTreeSuccessModel dirTreeModel = new DirTreeSuccessModel();

            try
            {
                IEnumerable <VwDirTree> VwDirTrees = new List <VwDirTree>();
                using (var db = new OggleBoobleMySqlContext())
                {
                    // wow did this speed things up
                    VwDirTrees = db.VwDirTrees.ToList().OrderBy(v => v.Id);
                }

                var vRootNode             = VwDirTrees.Where(v => v.Id == root).First();
                DirTreeModelNode rootNode = new DirTreeModelNode()
                {
                    ThisNode = vRootNode
                };
                DirTreeModelNode startNode = new DirTreeModelNode();
                dirTreeModel.SubDirs.Add(startNode);
                startNode.SubDirs.Add(rootNode);
                GetDirTreeChildNodes(dirTreeModel, rootNode, VwDirTrees, "");

                HtmlDirTreeRecurr(startNode);
                sbDirTree.Append("<div id='dirTreeCtxMenu'></div>");

                WriteFileToDisk(sbDirTree.ToString());

                success = "ok";
            }
            catch (Exception ex) { success = Helpers.ErrorDetails(ex); }
            return(success);
        }
コード例 #2
0
        public DirTreeSuccessModel BuildDirTree(int root)
        {
            DirTreeSuccessModel dirTreeModel = new DirTreeSuccessModel();

            try
            {
                var timer = new System.Diagnostics.Stopwatch();
                timer.Start();
                IEnumerable <VwDirTree> VwDirTrees = new List <VwDirTree>();
                using (var db = new OggleBoobleMySqlContext())
                {
                    // wow did this speed things up
                    VwDirTrees = db.VwDirTrees.ToList().OrderBy(v => v.Id);
                }

                var vRootNode             = VwDirTrees.Where(v => v.Id == root).First();
                DirTreeModelNode rootNode = new DirTreeModelNode()
                {
                    ThisNode = vRootNode
                };
                dirTreeModel.SubDirs.Add(rootNode);

                GetDirTreeChildNodes(dirTreeModel, rootNode, VwDirTrees, "");
                timer.Stop();
                dirTreeModel.TimeTook = timer.Elapsed;
                System.Diagnostics.Debug.WriteLine("RebuildCatTree took: " + timer.Elapsed);
                dirTreeModel.Success = "ok";
            }
            catch (Exception ex) { dirTreeModel.Success = Helpers.ErrorDetails(ex); }
            return(dirTreeModel);
        }
コード例 #3
0
        private void GetDirTreeChildNodes(DirTreeSuccessModel dirTreeModel, DirTreeModelNode parentNode, IEnumerable <VwDirTree> VwDirTrees, string dPath)
        {
            List <VwDirTree> vwDirTreeNodes = VwDirTrees.Where(v => v.Parent == parentNode.ThisNode.Id).OrderBy(f => f.SortOrder).ThenBy(f => f.FolderName).ToList();

            foreach (VwDirTree vNode in vwDirTreeNodes)
            {
                DirTreeModelNode childNode = new DirTreeModelNode()
                {
                    ThisNode  = vNode,
                    DanniPath = dPath + "/" + WebUtility.HtmlEncode(vNode.FolderName)  //  .Replace(" ", "%20")
                };
                parentNode.SubDirs.Add(childNode);
                if (vNode.IsStepChild == 0)
                {
                    GetDirTreeChildNodes(dirTreeModel, childNode, VwDirTrees, WebUtility.HtmlEncode(dPath + "/" + vNode.FolderName));
                }
            }
        }