public async Task <Response <IList <MenuItem> > > GetMenuByTypeAsync(MenuType type) { string role = _authService.GetUserRole(); var response = InitErrorListResponse <MenuItem>(); try { var result = await _unitOfWork.TreeMenuRepository.FindByAsync(x => x.Type == type); IList <MenuItem> list = new List <MenuItem>(); foreach (var item in result) { MenuItem menu = new MenuItem { Id = item.Id, Icon = item.DisplayIcon, Name = item.DisplayName, State = item.Link, ParentId = item.ParentId, Order = item.Order, Roles = item.Roles.Split(',') }; list.Add(menu); } var treeMenu = new TreeMenuBuilder().Build(role, list); response = InitSuccessListResponse <MenuItem>(MessageConstant.Load); response.Item = treeMenu; } catch (Exception ex) { response.Message = ex.Message; } return(response); }
private void InitializePlugins() { var pluginList = new List <IPlugin> { new GeneralMenuPlugin(NavigationService), new TestPlugin(NavigationService), new TopBarPlugins(NavigationService) }; var pm = new PluginManager <IPlugin>(); var plugins = pm.LoadPlugins("plugins"); if (plugins != null) { pluginList.AddRange(plugins); } var navigationMenuBuilder = new TreeMenuBuilder(); var topBarMenuBuilder = new TreeMenuBuilder(); foreach (var plugin in pluginList) { plugin.Initialize(); if (plugin.NavigationMenuItems != null) { navigationMenuBuilder.Append(plugin.NavigationMenuItems); } if (plugin.TopBarMenuItems != null) { topBarMenuBuilder.Append(plugin.TopBarMenuItems); } } var navigationMenuViewModel = new NavigationMenuViewModel(NavigationService, navigationMenuBuilder.ToObservableCollection()); var topBarMenuViewModel = new TopBarMenuViewModel(NavigationService, topBarMenuBuilder.ToObservableCollection()); Container.RegisterInstance(navigationMenuViewModel); Container.RegisterInstance(topBarMenuViewModel); }