Ejemplo n.º 1
0
        /// <summary>
        /// 根据指定的类型,将对应的对象集合转换为 List<SelfReferentialItem>。
        /// </summary>
        /// <param name="pCollection">对象集合</param>
        /// <param name="useSpace">返回的数据中,是否在 Name 属性前面,根据层次添加空格</param>
        /// <returns></returns>
        public static List <SelfReferentialItem> GetCollection(List <T> pCollection, bool useSpace)
        {
            PropertyInfo[] properties     = typeof(T).GetProperties();
            var            parentProperty = properties.FirstOrDefault(x => x.PropertyType.Name == typeof(T).Name);
            var            pItems         = new List <SelfReferentialItem>();

            foreach (var item in pCollection)
            {
                var pItem = new SelfReferentialItem
                {
                    ID          = item.Id.ToString(),
                    DisplayName = item.Name,
                    SortCode    = item.SortCode
                };

                var pObject = (T)parentProperty.GetValue(item);
                pItem.ParentID = pObject.Id.ToString();

                pItems.Add(pItem);
            }

            if (useSpace)
            {
                return(SetHierarchical(pItems));
            }
            else
            {
                return(pItems);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 根据指定的类型,直接提取对应的持久层数据,并转换为 List<SelfReferentialItem>。
        /// </summary>
        /// <param name="useSpace">返回的数据中,是否在 Name 属性前面,根据层次添加空格</param>
        /// <returns></returns>
        public static List <SelfReferentialItem> GetSelfReferentialItemCollection(bool useSpace)
        {
            var service = new EntityRepository <T>(new EntityDbContext());

            PropertyInfo[] properties     = typeof(T).GetProperties();
            var            parentProperty = properties.Where(x => x.PropertyType.Name == typeof(T).Name).FirstOrDefault();

            var pCollection = service.GetAll().OrderBy(s => s.SortCode).ToList();
            var pItems      = new List <SelfReferentialItem>();

            foreach (var item in pCollection)
            {
                var pItem = new SelfReferentialItem();
                pItem.ID       = item.ID.ToString();
                pItem.ItemName = item.Name;
                pItem.SortCode = item.SortCode;

                var pObject = (T)parentProperty.GetValue(item);
                pItem.ParentID = pObject.ID.ToString();

                pItems.Add(pItem);
            }
            if (useSpace)
            {
                return(HierarchicalFacadeItemsFromCustomCollection(pItems));
            }
            else
            {
                return(pItems);
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 迭代构建层次节点
        /// </summary>
        /// <param name="rootNode"></param>
        /// <param name="spaceNumber"></param>
        /// <param name="source"></param>
        /// <param name="result"></param>
        private static void _GetHierarchicalStyleSubItems(SelfReferentialItem rootNode, int spaceNumber, List <SelfReferentialItem> source, List <SelfReferentialItem> result)
        {
            var subItems = source.Where(sn => sn.ParentID == rootNode.ID && sn.ID != rootNode.ParentID).OrderBy(o => o.SortCode);

            foreach (var subItem in subItems.OrderBy(s => s.SortCode))
            {
                var ttt = _SpaceLength(spaceNumber);
                subItem.DisplayName = _SpaceLength(spaceNumber) + subItem.DisplayName;
                result.Add(subItem);
                _GetHierarchicalStyleSubItems(subItem, spaceNumber + 1, source, result);
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 根据指定的类型,直接转换为 SelfReferentialItem
        /// </summary>
        /// <param name="bo"></param>
        /// <returns></returns>
        public static SelfReferentialItem Get(T bo)
        {
            PropertyInfo[] properties     = typeof(T).GetProperties();
            var            parentProperty = properties.Where(x => x.PropertyType.Name == typeof(T).Name).FirstOrDefault();

            var pItem = new SelfReferentialItem();

            pItem.ID = bo.Id.ToString();

            var pObject = (T)parentProperty.GetValue(bo);

            pItem.ParentID    = pObject.Id.ToString();
            pItem.DisplayName = pObject.Name;
            pItem.SortCode    = pObject.SortCode;

            return(pItem);
        }
Ejemplo n.º 5
0
        // 递归创建子节点
        private static string _BuildSubNodes(SelfReferentialItem rootNode)
        {
            var subNodesContent = new StringBuilder();
            var subNodes        = _TreeNodes.Where(sn => sn.ParentID == rootNode.ID && sn.ID != sn.ParentID);

            if (subNodes.Count() > 0)
            {
                subNodesContent.Append("<ul>");
                foreach (var subNode in subNodes)
                {
                    subNodesContent.Append("<li id='" + subNode.ID + "'>");
                    subNodesContent.Append(GetALinkString(subNode.OperateName, subNode.ItemName));
                    subNodesContent.Append(_BuildSubNodes(subNode));
                    subNodesContent.Append("</li>");
                }
                subNodesContent.Append("</ul>");
            }
            return(subNodesContent.ToString());
        }
Ejemplo n.º 6
0
        public PersonVM(Person bo)
        {
            ID              = bo.ID;
            Name            = bo.Name;
            Description     = bo.Description;
            SortCode        = bo.SortCode;
            EmployeeCode    = bo.EmployeeCode;
            FirstName       = bo.FirstName;
            LastName        = bo.LastName;
            Sex             = bo.Sex;
            TelephoneNumber = bo.TelephoneNumber;
            MobileNumber    = bo.Mobile;
            Email           = bo.Email;
            CredentialsCode = bo.CredentialsCode;
            Birthday        = bo.Birthday;
            BirthdayString  = bo.Birthday.ToString("yyyy-MM-dd");

            if (Birthday.Year == 1)
            {
                Birthday       = DateTime.Now;
                BirthdayString = Birthday.ToString("yyyy-MM-dd");
            }

            SexString = bo.Sex ? "男" : "女";

            SexSelector = PlainFacadeItemFactory <Person> .GetBySex(bo.Sex);

            if (bo.Department != null)
            {
                ParentItemID = bo.Department.ID.ToString();
                ParentItem   = new SelfReferentialItem
                {
                    ID = bo.Department.ID.ToString(),
                    //ParentID = bo.Department.ParentDepartment.ID.ToString(),
                    DisplayName     = bo.Department.Name,
                    SortCode        = bo.Department.SortCode,
                    OperateFunction = "",
                    TargetType      = "",
                    TipsString      = ""
                };
            }
        }
Ejemplo n.º 7
0
        public static List <SelfReferentialItem> CommonTopMenu()
        {
            var topMenuItemCollection = new List <SelfReferentialItem>();

            var m01 = new SelfReferentialItem()
            {
                ID = "001", ParentID = "001", FacadeStyle = FacadeStyle.Title, SortCode = "001", ItemName = "", OperateName = "", IconString = "icon-cog", IsActive = true
            };
            var m0101 = new SelfReferentialItem()
            {
                ID = "001001", ParentID = "001", FacadeStyle = FacadeStyle.Normal, SortCode = "001001", ItemName = "系统角色管理", OperateName = "ApplicationRole", IconString = "", IsActive = true
            };
            var m0102 = new SelfReferentialItem()
            {
                ID = "001002", ParentID = "001", FacadeStyle = FacadeStyle.Normal, SortCode = "001002", ItemName = "系统用户管理", OperateName = "ApplicationUser", IconString = "", IsActive = true
            };
            var m0103 = new SelfReferentialItem()
            {
                ID = "001003", ParentID = "001", FacadeStyle = FacadeStyle.Normal, SortCode = "001003", ItemName = "系统工作日志", OperateName = "SystemLog", IconString = "", IsActive = true
            };
            var m0104 = new SelfReferentialItem()
            {
                ID = "001004", ParentID = "001", FacadeStyle = FacadeStyle.Divider, SortCode = "001004", ItemName = "", OperateName = "", IconString = "", IsActive = true
            };
            var m0105 = new SelfReferentialItem()
            {
                ID = "001005", ParentID = "001", FacadeStyle = FacadeStyle.Normal, SortCode = "001005", ItemName = "系统类型定义", OperateName = "ApplicationBusinessType", IconString = "", IsActive = true
            };
            var m0106 = new SelfReferentialItem()
            {
                ID = "001006", ParentID = "001", FacadeStyle = FacadeStyle.Divider, SortCode = "001006", ItemName = "", OperateName = "", IconString = "", IsActive = true
            };

            var m0110 = new SelfReferentialItem()
            {
                ID = "001010", ParentID = "001", FacadeStyle = FacadeStyle.Normal, SortCode = "001010", ItemName = "退出系统", OperateName = "Home/Logout", IconString = "", IsActive = true
            };

            var m02 = new SelfReferentialItem()
            {
                ID = "002", ParentID = "002", FacadeStyle = FacadeStyle.Title, SortCode = "002", ItemName = "部门与人员管理", OperateName = "", IconString = "", IsActive = true
            };
            var m0201 = new SelfReferentialItem()
            {
                ID = "002001", ParentID = "002", FacadeStyle = FacadeStyle.Normal, SortCode = "002001", ItemName = "部门类型定义", OperateName = "DepartmentType", IconString = "", IsActive = true
            };
            var m0202 = new SelfReferentialItem()
            {
                ID = "002002", ParentID = "002", FacadeStyle = FacadeStyle.Normal, SortCode = "002002", ItemName = "部门职位定义", OperateName = "JobTitle", IconString = "", IsActive = true
            };
            var m0203 = new SelfReferentialItem()
            {
                ID = "002003", ParentID = "002", FacadeStyle = FacadeStyle.Normal, SortCode = "002003", ItemName = "部门职级定义", OperateName = "JobLevel", IconString = "", IsActive = true
            };
            var m0204 = new SelfReferentialItem()
            {
                ID = "002004", ParentID = "002", FacadeStyle = FacadeStyle.Divider, SortCode = "002004", ItemName = "", OperateName = "", IconString = "", IsActive = true
            };
            var m0205 = new SelfReferentialItem()
            {
                ID = "002005", ParentID = "002", FacadeStyle = FacadeStyle.Normal, SortCode = "002005", ItemName = "证件类型", OperateName = "CredentialsType", IconString = "", IsActive = true
            };
            var m0208 = new SelfReferentialItem()
            {
                ID = "002008", ParentID = "002", FacadeStyle = FacadeStyle.Divider, SortCode = "002008", ItemName = "", OperateName = "", IconString = "", IsActive = true
            };
            var m0209 = new SelfReferentialItem()
            {
                ID = "002009", ParentID = "002", FacadeStyle = FacadeStyle.Normal, SortCode = "002009", ItemName = "部门管理", OperateName = "Department", IconString = "", IsActive = true
            };
            var m0210 = new SelfReferentialItem()
            {
                ID = "002010", ParentID = "002", FacadeStyle = FacadeStyle.Normal, SortCode = "002010", ItemName = "人员管理", OperateName = "Person", IconString = "", IsActive = true
            };

            topMenuItemCollection.AddRange(new List <SelfReferentialItem>()
            {
                m01, m0101, m0102, m0102, m0104, m0105, m0106, m0110,
                m02, m0201, m0202, m0203, m0204, m0205, m0208, m0209, m0210,
                //m03,m0301, m0302, m0303,m0304,
                //m04,m0401,m0403,m0404,m0405,
                //m05 ,m0501,m0502,m0503,m0504,m0505,m0506
            });
            return(topMenuItemCollection);
        }