public async static Task <HashSet <JsonMenu> > GetAllMenuItems(IEnumerable <AuthroziedFeatureInfo> items)
        {
            var menuITems = new HashSet <JsonMenu>();

            foreach (var item in items)
            {
                var feature = item.Feature;

                var children = FeatureSecurityFilter.GetAuthorizedFeatures(Context.Current.User(), parent: feature);

                var sumMenu = new JsonMenu
                {
                    ID          = item.Feature.ID,
                    Icon        = item.Feature.Icon,
                    Title       = item.Feature.Title,
                    LoadUrl     = item.AddQueryString(),
                    LogicalPath = feature.ToString(),
                    UseIframe   = item.Feature.UseIframe
                };

                if (children.Any())
                {
                    sumMenu.Children = await GetAllMenuItems(children);
                }

                menuITems.Add(sumMenu);
            }

            return(menuITems);
        }
        public int Calculate(JsonMenu menu)
        {
            // calculate the sum of IDs
            var idSum = 0;

            foreach (var menuItem in menu.items)
            {
                // skip if no label
                if (string.IsNullOrEmpty(menuItem?.label))
                {
                    continue;
                }
                idSum += menuItem.id;
            }

            return(idSum);
        }
        static XElement CreateSubLink(JsonMenu subItem, string color)
        {
            var subLink = new XElement("a", subItem.Title,
                                       new XAttribute("id", subItem.LogicalPath),
                                       new XAttribute("href", subItem.LoadUrl));

            var subIcon = new XElement("i", string.Empty);

            subIcon.Add(new XAttribute("style", $"color:{color};"));

            if (subItem.Icon != null)
            {
                subIcon.Add(new XAttribute("class", subItem.Icon));
            }

            subLink.Add(subIcon);
            return(subLink);
        }
Пример #4
0
        public ActionResult CreateMenu(string data)
        {
            string         accessToken = AccessTokenContainer.TryGetToken(ConfigSettings.TestWeixinAppID, ConfigSettings.TestWeixinAppSecret);
            JsonMenu       jsonMenu    = JsonConvert.DeserializeObject <JsonMenu>(data);
            MenuJsonResult jsonResult  = new MenuJsonResult {
                menu = jsonMenu
            };

            jsonResult = CommonApi.GetMenuFromJsonResult(jsonResult);
            WxJsonResult result = CommonApi.CreateMenu(accessToken, jsonResult.Buttons);

            if (result.errcode == WeixinReturnCode.Success)
            {
                return(Content("ok"));
            }
            else
            {
                return(Content("error"));
            }
        }
        static void AddChildItems(JsonMenu subItem, string color, XElement parent)
        {
            if (subItem.Children == null || subItem.Children.None())
            {
                return;
            }
            var ul2 = new XElement("ul");

            subItem.Children
            .ToList()
            .ForEach(subItem2 =>
            {
                var li2      = new XElement("li");
                var subLink2 = CreateSubLink(subItem2, color);

                li2.Add(subLink2);
                ul2.Add(li2);
            });

            parent.Add(ul2);
        }
        private void GoUp(object sender, RoutedEventArgs e)
        {
            if (navigationStack.Count > 1)
            {
                navigationStack.Pop();
                currentNode = navigationStack.Peek();

                LoadCurrentMenuItems();
                ShowNavigationTree();
            }
        }
        private void GoDown(object sender, RoutedEventArgs e)
        {
            currentNode = currentNode.children[menuItemsList.SelectedIndex];
            navigationStack.Push(currentNode);

            if (currentNode.children != null)
            {
                LoadCurrentMenuItems();
                ShowNavigationTree();
            }
            else
            {
                Process process = Process.GetProcessesByName(playerProcessName).FirstOrDefault();
                if (currentNode.action != null && process != null)
                {
                    IntPtr processWindowHandler = process.MainWindowHandle;

                    SetForegroundWindow(processWindowHandler);
                    ShowWindow(processWindowHandler, 3);

                    System.Windows.Forms.SendKeys.SendWait(currentNode.action.qwertyKey);

                }

                navigationStack.Pop();
                currentNode = navigationStack.Peek();
            }
        }