Ejemplo n.º 1
0
        private List <MenuButton> GenerateMenuButtons(ExtensionProviderCollection collections, string symbolicName)
        {
            List <MenuButton> buttons = new List <MenuButton>();

            foreach (var collection in collections)
            {
                foreach (var val in collection.Value)
                {
                    string name = val.AttributesCollection[NAME_ATTRIBUTE];
                    string type = val.AttributesCollection[TYPE_ATTRIBUTE];

                    if (Utility.Validate(name, NAME_ATTRIBUTE, symbolicName, WECHAT_MENU))
                    {
                        if (Utility.Validate(type, TYPE_ATTRIBUTE, symbolicName, WECHAT_MENU))
                        {
                            var buttonType = ButtonType.Click;
                            if (!Enum.TryParse <ButtonType>(type, out buttonType))
                            {
                                Utility.NotInCorrectFormat(TYPE_ATTRIBUTE, symbolicName, WECHAT_MENU);
                                continue;
                            }

                            string key = val.AttributesCollection[KEY_ATTRIBUTE];
                            string url = val.AttributesCollection[URL_ATTRIBUTE];

                            if ((buttonType == ButtonType.Click && Utility.Validate(key, KEY_ATTRIBUTE, symbolicName, WECHAT_MENU)) || (buttonType == ButtonType.View && Utility.Validate(url, URL_ATTRIBUTE, symbolicName, WECHAT_MENU)))
                            {
                                buttons.Add(new MenuButton()
                                {
                                    Name = name, Type = buttonType, Key = key, Url = url, MenuSubButtons = GenerateMenuButtons(val.ChildExtensionProvider, symbolicName)
                                });
                            }
                        }
                        else
                        {
                            buttons.Add(new MenuButton()
                            {
                                Name = name, Type = ButtonType.SubButton, MenuSubButtons = GenerateMenuButtons(val.ChildExtensionProvider, symbolicName)
                            });
                        }
                    }
                }
            }

            return(buttons);
        }
        private List<MenuButton> GenerateMenuButtons(ExtensionProviderCollection collections, string symbolicName)
        {
            List<MenuButton> buttons = new List<MenuButton>();

            foreach (var collection in collections)
            {
                foreach (var val in collection.Value)
                {
                    string name = val.AttributesCollection[NAME_ATTRIBUTE];
                    string type = val.AttributesCollection[TYPE_ATTRIBUTE];

                    if (Utility.Validate(name, NAME_ATTRIBUTE, symbolicName, WECHAT_MENU))
                    {
                        if (Utility.Validate(type, TYPE_ATTRIBUTE, symbolicName, WECHAT_MENU))
                        {
                            var buttonType = ButtonType.Click;
                            if (!Enum.TryParse<ButtonType>(type, out buttonType))
                            {
                                Utility.NotInCorrectFormat(TYPE_ATTRIBUTE, symbolicName, WECHAT_MENU);
                                continue;
                            }

                            string key = val.AttributesCollection[KEY_ATTRIBUTE];
                            string url = val.AttributesCollection[URL_ATTRIBUTE];

                            if ((buttonType == ButtonType.Click && Utility.Validate(key, KEY_ATTRIBUTE, symbolicName, WECHAT_MENU)) || (buttonType == ButtonType.View && Utility.Validate(url, URL_ATTRIBUTE, symbolicName, WECHAT_MENU)))
                            {
                                buttons.Add(new MenuButton() { Name = name, Type = buttonType, Key = key, Url = url, MenuSubButtons = GenerateMenuButtons(val.ChildExtensionProvider, symbolicName) });
                            }
                        }
                        else
                        {
                            buttons.Add(new MenuButton() { Name = name, Type = ButtonType.SubButton, MenuSubButtons = GenerateMenuButtons(val.ChildExtensionProvider, symbolicName) });
                        }
                    }
                }
            }

            return buttons;
        }