コード例 #1
0
        void SetChilds(Models.DictionaryModel menu, List <Models.DictionaryModel> alls)
        {
            menu.Childrens = alls.Where(o => o.DicPSN == menu.DicSN).ToList();
            int i = 0;

            foreach (var child in menu.Childrens)
            {
                child.Index    = i++;
                child.ParentId = menu.Id;
                SetChilds(child, alls);
            }
        }
コード例 #2
0
        public List <Models.DictionaryModel> DataList(string verId, int?psn)
        {
            var queryMenu = ProductDictionaryDataRepository.GetQuery(o => o.DictId == verId);
            var q         = from x in queryMenu
                            //where x.HasChild || x.DicPSN<=0
                            //orderby x.SortOrder
                            select x;

            var childs = new List <Entity.ProductDictionaryData>();

            if (psn.HasValue)
            {
                q = q.Where(o => o.DicPSN == psn.Value);
            }
            else
            {
                q      = q.Where(o => o.HasChild || o.DicPSN <= 0);
                childs = queryMenu.Where(o => !(o.HasChild || o.DicPSN <= 0)).ToList();
            }
            var ms    = q.OrderBy(o => o.SortOrder).ToList();
            var menus = new List <Models.DictionaryModel>();
            int i     = 0;

            foreach (var m in ms)
            {
                var pm = new Models.DictionaryModel();
                m.ToCopyProperty(pm);
                pm.ChildTitle = string.Join("、", childs.Where(o => o.DicPSN == m.DicSN).OrderBy(o => o.SortOrder).Select(o => o.Title));
                pm.Index      = i;
                i++;
                pm.Count = ms.Count;
                menus.Add(pm);
            }
            if (psn.HasValue)
            {
                return(menus);
            }
            var list = new List <Models.DictionaryModel>();

            foreach (var menu in menus.Where(o => o.DicPSN <= 0))
            {
                SetChilds(menu, menus);
                menu.Index = list.Count;
                list.Add(menu);
            }
            return(list);
        }
コード例 #3
0
        public List <Models.DictionaryModel> GetDataList(int?psn)
        {
            var queryMenu = DictRepository.GetQuery();
            var q         = from x in queryMenu
                            select x;

            var childs = new List <Entity.SysDataDictionary>();

            if (psn.HasValue)
            {
                q = q.Where(o => o.DicPSN == psn.Value);
            }
            else
            {
                q      = q.Where(o => o.HasChild || o.DicPSN <= 0);
                childs = queryMenu.Where(o => !(o.HasChild || o.DicPSN <= 0)).ToList();
            }
            var ms    = q.OrderBy(o => o.SortOrder).ToList();
            var menus = new List <Models.DictionaryModel>();
            int i     = 0;

            foreach (var m in ms)
            {
                var pm = new Models.DictionaryModel();
                m.ToCopyProperty(pm);
                pm.Status     = Convert.ToInt16(m.Status);
                pm.ChildTitle = string.Join("、", childs.Where(o => o.DicPSN == m.DicSN).OrderBy(o => o.SortOrder).Select(o => o.Title));
                pm.Index      = i;
                i++;
                pm.Count = ms.Count;
                menus.Add(pm);
            }
            if (psn.HasValue)
            {
                return(menus);
            }
            var list = new List <Models.DictionaryModel>();

            foreach (var menu in menus.Where(o => o.DicPSN <= 0))
            {
                SetChilds(menu, menus);
                menu.Index = list.Count;
                list.Add(menu);
            }
            return(list);
        }