using Abp.Authorization; using Abp.Localization; using Microsoft.AspNetCore.Mvc; namespace VberAdmin.Web.Views.Shared.Components.Breadcrumb; public class BreadcrumbViewComponent : VberAdminViewComponent { public BreadcrumbViewComponent(ILocalizationContext localizationContext) { _localizationContext = localizationContext; } private ILocalizationContext _localizationContext; public IViewComponentResult Invoke(string activeMenu = "") { var permission = PermissionManager.GetPermissionOrNull(activeMenu); if (string.IsNullOrEmpty(activeMenu) || permission == null) { return View(null); } ViewBag.ActiveMenu = activeMenu; var model = new BreadcrumbViewModel(permission.DisplayName.Localize(_localizationContext)); var breadcrumbs = GetParentName(permission, new List()); breadcrumbs.Reverse(); model.Breadcrumbs = breadcrumbs; return View(model); } private List GetParentName(Permission permission, List breadcrumbs) { if (permission.Parent == null) { return breadcrumbs; } breadcrumbs.Add(permission.DisplayName.Localize(_localizationContext)); return GetParentName(permission.Parent, breadcrumbs); } } public class BreadcrumbViewModel { public BreadcrumbViewModel(string name) { Name = name; Breadcrumbs = new List(); } public string Name { get; set; } public List Breadcrumbs { get; set; } }