/// <summary> /// Hàm lấy danh sách đề tài (nội dung) đang thực hiện /// </summary> /// <returns></returns> /// Create by: laipv:04.02.2018 public List <ProjectAcceptance> GetAcceptances() { List <ProjectAcceptance> lstResult = new List <ProjectAcceptance>(); List <ProjectTask> lstProjectTask = new List <ProjectTask>(); List <Level> lstLevel = new List <Level>(); List <Project> lstProject = new List <Project>(); using (IDataReader reader = GetDataReader("[dbo].[Proc_HierarchicalProjectTask]")) { lstLevel = reader.FillCollection <Level>(false);// Cap của đề tài if (reader.NextResult()) { lstProject = reader.FillCollection <Project>(false); } if (reader.NextResult()) { lstProjectTask = reader.FillCollection <ProjectTask>(false); } } if (lstLevel != null && lstProject != null) { foreach (var item in lstLevel) { ProjectAcceptance oParent = new ProjectAcceptance { ProjectID = Guid.NewGuid(), ProjectName = item.LevelName, Expanded = true }; List <Project> temp = lstProject.Where(m => m.LevelID == item.LevelID).ToList(); if (temp != null && temp.Count > 0) { oParent.Leaf = false; List <ProjectAcceptance> children = new List <ProjectAcceptance>(); foreach (var p in temp) { ProjectAcceptance oChild = new ProjectAcceptance { EmployeeName = p.EmployeeName, ProjectID = p.ProjectID, ProjectName = p.ProjectName, ProjectNameAbbreviation = p.ProjectNameAbbreviation, Result = p.Result, StatusName = p.StatusName, StartDate = p.StartDate, EndDate = p.EndDate, IsProject = true, Expanded = true, Status = p.Status }; var lstChildrens = lstProjectTask.Where(m => m.ProjectID == p.ProjectID).ToList(); if (lstChildrens != null && lstChildrens.Count > 0) { oChild.Leaf = false; CreateTree(lstChildrens, null, oChild);//lstChildrens[0] } else { oChild.Leaf = true; } children.Add(oChild); } oParent.Data = children; } else { oParent.Leaf = true; } lstResult.Add(oParent); } } return(lstResult); }
/// <summary> /// Create cây tree /// </summary> /// <param name="lstTreeStore"></param> /// Create by: dvthang:04.02.2018 private void CreateTree(List <ProjectTask> lstProjectTask, ProjectTask task, ProjectAcceptance parent) { if (task == null) { var lstChildrens_ParentID_Null = lstProjectTask.Where(m => m.ParentID == null).ToList(); if (lstChildrens_ParentID_Null != null && lstChildrens_ParentID_Null.Count > 0) { parent.Leaf = false; List <ProjectAcceptance> childs_ = new List <ProjectAcceptance>(); foreach (ProjectTask it_ParentNull in lstChildrens_ParentID_Null) { string StatusName = ""; switch (it_ParentNull.Status) { case 11: StatusName = "Đã hoàn thành"; break; case 12: StatusName = "Chưa hoàn thành"; break; case 13: StatusName = "Chậm tiến độ"; break; default: StatusName = ""; break; } ProjectAcceptance oTemp = new ProjectAcceptance { ProjectID = Guid.NewGuid(), ProjectName = it_ParentNull.Contents, Result = it_ParentNull.Result, StatusName = StatusName, Expanded = true }; var lstItemp = lstProjectTask.Where(m => m.ParentID.HasValue && m.ParentID == it_ParentNull.ProjectTaskID).ToList(); if (lstItemp != null && lstItemp.Count > 0) { oTemp.Leaf = false; CreateTree(lstProjectTask, it_ParentNull, oTemp); } else { oTemp.Leaf = true; } childs_.Add(oTemp); } parent.Data = childs_; } else { parent.Leaf = true; } } else { var lstChildrens = lstProjectTask.Where(m => m.ParentID.HasValue && m.ParentID.Value == task.ProjectTaskID).ToList(); if (lstChildrens != null && lstChildrens.Count > 0) { parent.Leaf = false; List <ProjectAcceptance> childs = new List <ProjectAcceptance>(); foreach (ProjectTask it in lstChildrens) { ProjectAcceptance oTemp = new ProjectAcceptance { ProjectID = Guid.NewGuid(), ProjectName = it.Contents, Expanded = true }; var lstItemp = lstProjectTask.Where(m => m.ParentID.HasValue && m.ParentID == it.ProjectTaskID).ToList(); if (lstItemp != null && lstItemp.Count > 0) { oTemp.Leaf = false; CreateTree(lstProjectTask, it, oTemp); } else { oTemp.Leaf = true; } childs.Add(oTemp); } parent.Data = childs; } else { parent.Leaf = true; } } }