コード例 #1
0
        /// <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);
        }
コード例 #2
0
        /// <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;
                }
            }
        }