示例#1
0
        public IEnumerable <DepartmentHierarchyDTO> GetAdminDepartmentListHierarchy(Guid adminId)
        {
            List <DepartmentHierarchyDTO> result = new List <DepartmentHierarchyDTO>();

            SessionManager.DoWork(session =>
            {
                List <Guid> departmentIds = new List <Guid>();
                Staff staff = session.Query <Staff>().SingleOrDefault(s => s.Id == adminId);
                if (staff != null)
                {
                    departmentIds = staff.Departments.Select(d => d.Id).ToList();
                }


                Guid buh = new Guid("77FC97D9-6EE2-410A-B730-0444FE7AF7AE");
                List <Department> deptList = new List <Department>();
                deptList = session.Query <Department>().Where(d => d.ParentDepartment.Id == buh && d.GCRecord == null && d.IsDisable == false).OrderBy(d => d.Name).ToList();

                DepartmentHierarchyDTO phong = new DepartmentHierarchyDTO();
                phong.Id   = new Guid("00000000-0000-0000-0000-000000000001");
                phong.Name = "Phòng ban";
                result.Add(phong);
                DepartmentHierarchyDTO khoa = new DepartmentHierarchyDTO();
                khoa.Id   = new Guid("00000000-0000-0000-0000-000000000002");
                khoa.Name = "Khoa/Viện/Trung tâm";
                result.Add(khoa);
                DepartmentHierarchyDTO khac = new DepartmentHierarchyDTO();
                khac.Id   = new Guid("00000000-0000-0000-0000-000000000003");
                khac.Name = "Khác";
                result.Add(khac);

                List <DepartmentDTO> listDept = new List <DepartmentDTO>();
                foreach (Department pl in deptList)
                {
                    DepartmentDTO pd = pl.Map <DepartmentDTO>();
                    switch (pd.DepartmentType)
                    {
                    case 1:
                        {
                            pd.ParentId = new Guid("00000000-0000-0000-0000-000000000001");
                        }
                        break;

                    case 4:
                        {
                            pd.ParentId = new Guid("00000000-0000-0000-0000-000000000002");
                        }
                        break;

                    default:
                        {
                            pd.ParentId = new Guid("00000000-0000-0000-0000-000000000003");
                        }
                        break;
                    }
                    listDept.Add(pd);
                }
                foreach (DepartmentHierarchyDTO dh in result)
                {
                    dh.items = new List <DepartmentDTO>();
                    foreach (DepartmentDTO dt in listDept)
                    {
                        if (dt.ParentId == dh.Id)
                        {
                            if (departmentIds.Contains(dt.Id))
                            {
                                dt.@checked = true;
                            }
                            dh.items.Add(dt);
                        }
                    }
                }
            });
            return(result);
        }
示例#2
0
        public IEnumerable <DepartmentHierarchyDTO> GetMainDepartmentListHierarchy(Guid planDetailId)
        {
            List <DepartmentHierarchyDTO> result = new List <DepartmentHierarchyDTO>();

            SessionManager.DoWork(session =>
            {
                List <Guid> subDepartmentIds = new List <Guid>();
                PlanKPIDetail pld            = session.Query <PlanKPIDetail>().SingleOrDefault(p => p.Id == planDetailId);
                if (pld != null)
                {
                    subDepartmentIds = pld.SubDepartments.Select(d => d.Id).ToList();
                }


                Guid spkt = new Guid("E054A602-E077-444C-B843-E856D643CA7F");
                List <Department> deptList = new List <Department>();
                deptList = session.Query <Department>().Where(d => d.ParentDepartment.Id == spkt && d.GCRecord == null && d.IsDisable == false).OrderBy(d => d.Name).ToList();

                DepartmentHierarchyDTO phong = new DepartmentHierarchyDTO();
                phong.Id   = new Guid("00000000-0000-0000-0000-000000000001");
                phong.Name = "Phòng ban";
                result.Add(phong);
                DepartmentHierarchyDTO khoa = new DepartmentHierarchyDTO();
                khoa.Id   = new Guid("00000000-0000-0000-0000-000000000002");
                khoa.Name = "Khoa/Viện/Trung tâm";
                result.Add(khoa);
                DepartmentHierarchyDTO khac = new DepartmentHierarchyDTO();
                khac.Id   = new Guid("00000000-0000-0000-0000-000000000003");
                khac.Name = "Khác";
                result.Add(khac);

                List <DepartmentDTO> listDept = new List <DepartmentDTO>();
                foreach (Department pl in deptList)
                {
                    DepartmentDTO pd = pl.Map <DepartmentDTO>();
                    switch (pd.DepartmentType)
                    {
                    case 1:
                        {
                            pd.ParentId = new Guid("00000000-0000-0000-0000-000000000001");
                        }
                        break;

                    case 4:
                        {
                            pd.ParentId = new Guid("00000000-0000-0000-0000-000000000002");
                        }
                        break;

                    default:
                        {
                            pd.ParentId = new Guid("00000000-0000-0000-0000-000000000003");
                        }
                        break;
                    }
                    listDept.Add(pd);
                }
                foreach (DepartmentHierarchyDTO dh in result)
                {
                    dh.items = new List <DepartmentDTO>();
                    foreach (DepartmentDTO dt in listDept)
                    {
                        if (dt.ParentId == dh.Id)
                        {
                            if (subDepartmentIds.Contains(dt.Id))
                            {
                                dt.@checked = true;
                            }
                            dh.items.Add(dt);
                        }
                    }
                }
            });
            return(result);
        }