using Abp; using Abp.Application.Navigation; using Abp.Configuration.Startup; using Abp.Dependency; using Abp.Localization; namespace VberZero.Navigation; public class VzNavigationManager : INavigationManager, ISingletonDependency { public IDictionary Menus { get; private set; } public MenuDefinition MainMenu => Menus["MainMenu"]; private readonly IIocResolver _iocResolver; private readonly INavigationConfiguration _configuration; public VzNavigationManager(IIocResolver iocResolver, INavigationConfiguration configuration) { _iocResolver = iocResolver; _configuration = configuration; Menus = new Dictionary { {"MainMenu", new MenuDefinition("MainMenu", new LocalizableString("MainMenu", AbpConsts.LocalizationSourceName))} }; } public void Initialize() { Menus = new Dictionary { {"MainMenu", new MenuDefinition("MainMenu", new LocalizableString("MainMenu", AbpConsts.LocalizationSourceName))} }; var context = new VzNavigationProviderContext(this); foreach (var providerType in _configuration.Providers) { using var provider = _iocResolver.ResolveAsDisposable(providerType); provider.Object.SetNavigation(context); } } }