Beispiel #1
0
        public static IEnumerable <ToolbarGroupButtons> GetToolbarButtons(RequestContext requestContext)
        {
            var tabProviders = Kooboo.CMS.Common.Runtime.EngineContext.Current.ResolveAll <IToolbarProvider>();

            var matchedProviders = MatchProviders(tabProviders, requestContext.RouteData).ToArray();

            var groups = matchedProviders.SelectMany(it => it.GetGroups(requestContext)).OrderBy(it => it.Order)
                         .Distinct(new ToolbarGroupEqualityComparer())
                         .Select(it => new ToolbarGroupButtons()
            {
                Group = it, Buttons = new List <ToolbarButton>()
            }).ToArray();

            var buttons = matchedProviders.SelectMany(it => it.GetButtons(requestContext)).OrderBy(it => it.Order).ToArray();

            var nonGroup = new ToolbarGroupButtons()
            {
                Group = null, Buttons = new List <ToolbarButton>()
            };

            foreach (var button in buttons)
            {
                if (string.IsNullOrEmpty(button.GroupName))
                {
                    nonGroup.Buttons.Add(button);
                }
                else
                {
                    var group = groups.Where(it => it.Group.GroupName.EqualsOrNullEmpty(button.GroupName, StringComparison.OrdinalIgnoreCase)).FirstOrDefault();
                    if (group != null)
                    {
                        group.Buttons.Add(button);
                    }
                    else
                    {
                        nonGroup.Buttons.Add(button);
                    }
                }
            }

            nonGroup.Buttons = nonGroup.Buttons.OrderBy(it => it.Order).ToList();

            foreach (var group in groups)
            {
                group.Buttons = group.Buttons.OrderBy(it => it.Order).ToList();
            }

            return(new[] { nonGroup }.Concat(groups));
        }
Beispiel #2
0
        public static IEnumerable<ToolbarGroupButtons> GetToolbarButtons(RequestContext requestContext)
        {
            var tabProviders = Kooboo.CMS.Common.Runtime.EngineContext.Current.ResolveAll<IToolbarProvider>();

            var matchedProviders = MatchProviders(tabProviders, requestContext).ToArray();

            var groups = matchedProviders.SelectMany(it => it.GetGroups(requestContext)).OrderBy(it => it.Order)
                .Distinct(new ToolbarGroupEqualityComparer())
                .Select(it => new ToolbarGroupButtons() { Group = it, Buttons = new List<ToolbarButton>() }).ToArray();

            var buttons = matchedProviders.SelectMany(it => it.GetButtons(requestContext)).OrderBy(it => it.Order).ToArray();

            var nonGroup = new ToolbarGroupButtons() { Group = null, Buttons = new List<ToolbarButton>() };

            foreach (var button in buttons)
            {
                if (string.IsNullOrEmpty(button.GroupName))
                {
                    nonGroup.Buttons.Add(button);
                }
                else
                {
                    var group = groups.Where(it => it.Group.GroupName.EqualsOrNullEmpty(button.GroupName, StringComparison.OrdinalIgnoreCase)).FirstOrDefault();
                    if (group != null)
                    {
                        group.Buttons.Add(button);
                    }
                    else
                    {
                        nonGroup.Buttons.Add(button);
                    }
                }
            }

            nonGroup.Buttons = nonGroup.Buttons.OrderBy(it => it.Order).ToList();

            foreach (var group in groups)
            {
                group.Buttons = group.Buttons.OrderBy(it => it.Order).ToList();
            }

            return new[] { nonGroup }.Concat(groups);
        }