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