/// <summary> /// lamda递归获取工作类型 /// </summary> /// <returns></returns> public JsonResult GetWorkLogAttributes() { Func<List<WorkLogAttribute>, List<M_WorkLogAttribute>> getTree = null; Func<WorkLogAttribute, bool> filter = x => { return x.IsEnabled == true && x.IsDeleted == false; }; getTree = (source) => { List<M_WorkLogAttribute> tree = new List<M_WorkLogAttribute>(); foreach (WorkLogAttribute attr in source) { M_WorkLogAttribute entity = new M_WorkLogAttribute() { WorkLogAttributeName = attr.WorkLogAttributeName, }; if (attr.ParentId == null) { entity.Id = null; } else { entity.Id = attr.Id; } entity.Children = getTree(attr.Children.ToList()); tree.Add(entity); } return tree; }; List<WorkLogAttribute> listWorkLogAttribute = _workLogAttributeContract.WorkLogAttributes.Where(filter).Where(x => x.ParentId == null).ToList(); List<M_WorkLogAttribute> list = getTree(listWorkLogAttribute); return Json(list); }
/// <summary> /// 生成选择数据框 /// </summary> /// <param name="list"></param> /// <returns></returns> private List<M_WorkLogAttribute> RecursiveData(List<WorkLogAttribute> list) { List<M_WorkLogAttribute> listWorkLogAttribute = new List<M_WorkLogAttribute>(); foreach (WorkLogAttribute attr in list) { M_WorkLogAttribute entity = new M_WorkLogAttribute() { Id = attr.ParentId, WorkLogAttributeName = attr.WorkLogAttributeName, }; entity.Children = RecursiveData(attr.Children.ToList()); } return listWorkLogAttribute; }
/// <summary> /// 获取工作类型 /// </summary> /// <returns></returns> private List<M_WorkLogAttribute> GetData() { Func<List<WorkLogAttribute>, List<M_WorkLogAttribute>> getTree = null; Func<WorkLogAttribute, bool> filter = x => { return x.IsEnabled == true && x.IsDeleted == false; }; getTree = (source) => { List<M_WorkLogAttribute> tree = new List<M_WorkLogAttribute>(); foreach (WorkLogAttribute attr in source) { M_WorkLogAttribute entity = new M_WorkLogAttribute() { Id = attr.ParentId, WorkLogAttributeName = attr.WorkLogAttributeName, }; entity.Children = getTree(attr.Children.ToList()); tree.Add(entity); } return tree; }; List<WorkLogAttribute> listWorkLogAttribute = _workLogAttributeContract.WorkLogAttributes.Where(filter).Where(x => x.ParentId == null).ToList(); List<M_WorkLogAttribute> list = getTree(listWorkLogAttribute); return list; }