public JsonResult Get() { var rootTasks = _db.Tasks.Where(b => !b.parentId.HasValue); List <NestedTaskModel> roots = new List <NestedTaskModel>(); foreach (Task cd in rootTasks) { NestedTaskModel n = new NestedTaskModel(cd); roots.Add(n); this.SetNodeChildren(n); } return(this.Json(roots, JsonRequestBehavior.AllowGet)); }
public void SetNodeChildren(NestedTaskModel node) { var children = _db.Tasks.Where(b => b.parentId == node.Id); if (children.Count <Task>() > 0) { node.children = new List <NestedTaskModel>(); foreach (Task t in children) { NestedTaskModel n = new NestedTaskModel(t); node.children.Add(n); this.SetNodeChildren(n); } // Last step, sort children on the 'index' field node.children = node.children.OrderBy(a => a.index).ToList(); } node.leaf = (node.children == null); node.expanded = !node.leaf; }