Beispiel #1
0
        /// <summary>
        /// Get all Category
        /// </summary>
        public static List <SelectListItem> ProductCategoriesByCatalogueId(long catalogueId = 0)
        {
            var categoryList = new List <SelectListItem>();
            var proCatRepo   = new ProductCategoryRepo();
            var menu         = proCatRepo.GetMenuCategoryProduct(catalogueId).ToList();
            var menuTemp     = new List <ViewModel.MenuItem>();

            menuTemp = menu.Where(w => w.Level == 0).OrderBy(o => o.Order).ToList();
            var menuChirld = menu.Where(w => w.Level != 0).OrderByDescending(o => o.Order).ToList();

            foreach (var item in menuChirld)
            {
                var menuParent = menuTemp.Where(w => w.Id == item.ParentId).FirstOrDefault();
                if (menuParent != null)
                {
                    var positon = menuTemp.IndexOf(menuParent);
                    item.Name = "--" + item.Name;
                    if (menuTemp.Count > positon)
                    {
                        menuTemp.Insert(positon + 1, item);
                    }
                    else
                    {
                        menuTemp.Insert(positon, item);
                    }
                }
            }

            categoryList = menuTemp.AsEnumerable().Select(s => new SelectListItem()
            {
                Text = s.Name, Value = s.Id.ToString()
            }).ToList();
            categoryList.Insert(0, new SelectListItem {
                Text = "Nhóm Root", Value = "0"
            });
            return(categoryList);
        }