private void AddSubMenu(Item item, MenuItem menu)
        {
            if (item != null)
            {
                var args = new GetMenuModelArgs();
                args.SiteSettings = _siteSettings;
                args.SitecoreItem = item;
                GetMenuModelPipeline.Run(args);

                var menuItem = args.MenuItem;

                args.SitecoreItem = null;
                args.MenuItem     = null;

                if (menuItem == null)
                {
                    return;
                }

                menu.SubMenuItems.Add(menuItem);

                if (item.Children != null &&
                    item.Children.Count > 0)
                {
                    foreach (var child in item.Children.ToArray())
                    {
                        AddSubMenu(child, menuItem);
                    }
                }
            }
        }
 public override void Process(GetMenuModelArgs args)
 {
     if (!args.Aborted)
     {
         if (string.IsNullOrEmpty(args.SiteSettings.AllowedTemplates) ||
             !args.SiteSettings.AllowedTemplates.Contains(args.SitecoreItem.TemplateID.ToString()))
         {
             args.AbortPipeline();
         }
     }
 }
 public abstract void Process(GetMenuModelArgs args);