public EquipmentCategoryTreeView GetProductCategoryTreeView(List <EquipmentCategory> purchaseProductCategories) { var categoryTreeView = new EquipmentCategoryTreeView { Trees = new List <TreeNode>() }; if (!purchaseProductCategories.Any()) { return(categoryTreeView); } var minLayer = purchaseProductCategories.Min(x => x.Layer); var layerLength = purchaseProductCategories.Select(x => x.Layer).Distinct().Count(); var rootLayerTrees = RetrieveRootTreeNodesByParentId(minLayer, purchaseProductCategories); //if (!LastLayerOnly) //{ // categoryTreeView.Trees.Add(new TreeNode // { // HasSubTreeNodes = false, // Text = "全部", // Value = "", // }); //} foreach (var category in rootLayerTrees) { category.SubTreeNodes = new List <TreeNode>(); category.SubTreeNodes = RetrieveSubTreeNodes(int.Parse(category.Value), purchaseProductCategories); categoryTreeView.Trees.Add(category); } return(categoryTreeView); }
public ActionResult Edit(int id) { var productCategory = _categoryQuery.Get(id); var categories = _categoryQuery.QueryAllValid().ToList(); var treeView = new EquipmentCategoryTreeView(categories); var viewModel = new EditViewModel(Url) { Id = productCategory.Id, Name = productCategory.Name, Description = productCategory.Description, ParentId = productCategory.ParentId, Published = productCategory.Published, Categories = categories.Where(x => x.Id != productCategory.Id && x.ParentId == 0).Select(x => new SelectListItem { Text = x.Name, Value = x.Id.ToString() }), ColumnTypes = Enum.GetNames(typeof(EquipmentCategoryColumnType)) .Select(x => new SelectListItem { Text = x, Value = x.ToString() }) .ToList(), ProductCategoryTreeView = treeView.GetProductCategoryTreeView(), Columns = productCategory.Columns }; viewModel.ProductCategoryTreeView.CategoryText = categories.SingleOrDefault(x => x.Id == productCategory.ParentId)?.Name; return(View("~/Views/Equipment/Category/Edit.cshtml", viewModel)); }