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; }