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