VzNavigationManager.cs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. using Abp;
  2. using Abp.Application.Navigation;
  3. using Abp.Configuration.Startup;
  4. using Abp.Dependency;
  5. using Abp.Localization;
  6. namespace VberZero.Navigation;
  7. public class VzNavigationManager : INavigationManager, ISingletonDependency
  8. {
  9. public IDictionary<string, MenuDefinition> Menus { get; private set; }
  10. public MenuDefinition MainMenu => Menus["MainMenu"];
  11. private readonly IIocResolver _iocResolver;
  12. private readonly INavigationConfiguration _configuration;
  13. public VzNavigationManager(IIocResolver iocResolver, INavigationConfiguration configuration)
  14. {
  15. _iocResolver = iocResolver;
  16. _configuration = configuration;
  17. Menus = new Dictionary<string, MenuDefinition>
  18. {
  19. {"MainMenu", new MenuDefinition("MainMenu", new LocalizableString("MainMenu", AbpConsts.LocalizationSourceName))}
  20. };
  21. }
  22. public void Initialize()
  23. {
  24. Menus = new Dictionary<string, MenuDefinition>
  25. {
  26. {"MainMenu", new MenuDefinition("MainMenu", new LocalizableString("MainMenu", AbpConsts.LocalizationSourceName))}
  27. };
  28. var context = new VzNavigationProviderContext(this);
  29. foreach (var providerType in _configuration.Providers)
  30. {
  31. using var provider = _iocResolver.ResolveAsDisposable<NavigationProvider>(providerType);
  32. provider.Object.SetNavigation(context);
  33. }
  34. }
  35. }