public async Task <OperationResult> ResetCurrentUserMenu()
        {
            // Step 1. Firstly remove all menu items from database
            var actualMenu = await _dbContext.MenuItems.ToListAsync();

            _dbContext.MenuItems.RemoveRange(actualMenu);
            await _dbContext.SaveChangesAsync();

            var defaultMenu = DefaultMenuStorage.GetDefaultMenu();

            _dbContext.MenuItems.AddRange(defaultMenu);
            await _dbContext.SaveChangesAsync();

            foreach (var plugin in Program.EnabledPlugins)
            {
                var pluginMenu = plugin.GetNavigationMenu(_serviceProvider);

                var currentPosition = _dbContext.MenuItems.Where(x => x.ParentId == null).Max(x => x.Position) + 1;
                foreach (var pluginMenuItem in pluginMenu)
                {
                    AddToDatabase(pluginMenuItem, null, currentPosition);
                    currentPosition++;
                }
            }

            return(new OperationResult(true));
        }
        public static ModelBuilder AddDefaultMenuTranslations(this ModelBuilder modelBuilder)
        {
            var entities = DefaultMenuStorage.GetDefaultMenu()
                           .SelectMany(x => x.Translations)
                           .ToArray();

            modelBuilder.Entity <MenuItemTranslation>().HasData(entities);
            return(modelBuilder);
        }
Exemplo n.º 3
0
        public static ModelBuilder AddDefaultMenu(this ModelBuilder modelBuilder)
        {
            var entities = DefaultMenuStorage.GetDefaultMenu().Select(x => new MenuItem
            {
                Id             = x.Id,
                Name           = x.Name,
                Link           = x.Link,
                E2EId          = x.E2EId,
                MenuTemplateId = x.MenuTemplateId,
                Type           = x.Type,
                Position       = x.Position,
                ParentId       = x.ParentId,
            });

            modelBuilder.Entity <MenuItem>().HasData(entities);
            return(modelBuilder);
        }