Exemple #1
0
        private void SortItem(Web.Models.MenuNodes node)
        {
            //var sorted = node.ChildNodes.OrderBy(r => r.Name).OrderByDescending(r => r.ChildNodes.Count > 0).ToList();
            var sorted = node.ChildNodes.OrderByDescending(r => r.ChildNodes.Count > 0).ToList();

            if (sorted.Count > 0)
            {
                foreach (var item in sorted)
                {
                    SortItem(item);
                }
                node.ChildNodes.Clear();
                node.ChildNodes.AddRange(sorted.ToArray());
            }
        }
Exemple #2
0
 private void ProcessModule(List <Web.Models.MenuNodes> roots, Kmo.Web.Models.MenuViewModels model)
 {
     if (!string.IsNullOrEmpty(model.MenuPath))
     {
         Web.Models.MenuNodes parent = null;
         foreach (var item in model.MenuPath.Split('/').Where(r => !string.IsNullOrEmpty(r)))
         {
             if (parent == null)
             {
                 if (item.StartsWith("$Modules"))
                 {
                     Web.Models.MenuNodes rootChild = new Web.Models.MenuNodes();
                     rootChild.Name     = model.Name;
                     rootChild.IsFolder = false;
                     rootChild.Icon     = item.Split(':')[1];
                     rootChild.Path     = model.Route;
                     roots.Add(rootChild);
                     return;
                 }
                 else
                 {
                     parent = roots.SingleOrDefault(r => r.Name == item.Split(':')[0]);
                     if (parent == null)
                     {
                         parent          = new Web.Models.MenuNodes();
                         parent.Name     = item.Split(':')[0];
                         parent.IsFolder = true;
                         parent.Icon     = item.Split(':')[1];
                         parent.Path     = model.Route;
                         roots.Add(parent);
                     }
                 }
             }
             else
             {
                 if (item.StartsWith("$Modules"))
                 {
                     parent.ChildNodes.Add(new Web.Models.MenuNodes
                     {
                         Name     = model.Name,
                         IsFolder = false,
                         Icon     = item.Split(':')[1],
                         Path     = model.Route
                     });
                     return;
                 }
                 else
                 {
                     var nextParent = parent.ChildNodes.SingleOrDefault(r => r.Name == item.Split(':')[0]);
                     if (nextParent == null)
                     {
                         nextParent            = new Web.Models.MenuNodes();
                         nextParent.Name       = item.Split(':')[0];
                         nextParent.IsFolder   = true;
                         nextParent.Icon       = item.Split(':')[1];
                         nextParent.ParentNode = parent;
                         parent.ChildNodes.Add(nextParent);
                     }
                     parent = nextParent;
                 }
             }
         }
     }
 }