private WebNavigationItemDefinition FillNavUrl(INavigationItemDefinition navDefinitionItem) { if (navDefinitionItem == null) { return(null); } var navItem = navDefinitionItem; if (navItem.NavigationType == 1) { var p = navItem.Name; var navigationUrl = Mvc.Route.RouteHelper.GetUrl(navItem.RouteValues); var permissons = new List <Permission>(); if (navItem.RouteValues.Values.Count() < 3) { throw new BlocksException(StringLocal.Format("Navigation controller or action {0} can't null", navigationUrl)); } var requiredPermissions = new List <Permission>(); if (!navItem.HasPermissions.IsNullOrEmpty()) { requiredPermissions.Add(navItem.HasPermissions.FirstOrDefault()); } return(new WebNavigationItemDefinition(navItem.Name, navItem.DisplayName, Mvc.Route.RouteHelper.GetUrl(navItem.RouteValues), navItem.RequiresAuthentication, requiredPermissions.ToArray() , navItem.CustomData, navItem.IsVisible, navItem.HasPermissions, navItem.RouteValues, navItem.NavigationType )); } return(null); }
private WebNavigationItemDefinition FillNavUrl(INavigationItemDefinition navDefinitionItem) { if (navDefinitionItem == null) { return(null); } var navItem = navDefinitionItem; var controllerPath = Mvc.Route.RouteHelper.GetControllerPath(navItem.RouteValues); var controllerActionKv = _defaultControllerManager.FindOrNull(controllerPath)?.Actions .FirstOrDefault(a => a.Key == navItem.RouteValues["action"]?.ToString()); // if (navItem.NavigationType == 1) // { // var p = navItem.Name; // var navigationUrl = Mvc.Route.RouteHelper.GetUrl(navItem.RouteValues); // var permissons = new List<Permission>(); // //// var navigationRequirePermission = Permission.Create(p, navigationUrl, "navigation", //// navigationUrl + "/" + p, new LocalizableString(navItem.DisplayName.SourceName, p)); // if(navItem.RouteValues.Values.Count() < 3) // throw new BlocksException(StringLocal.Format("Navigation controller or action {0} can't null",navigationUrl)); // // return new WebNavigationItemDefinition(navItem.Name, // navItem.DisplayName, Mvc.Route.RouteHelper.GetUrl(navItem.RouteValues), navItem.RequiresAuthentication,null // , navItem.CustomData, navItem.IsVisible, navItem.HasPermissions,navItem.RouteValues, navItem.NavigationType // ); // } if (controllerActionKv == null || navDefinitionItem.NavigationType != 0) { return(null); } if (controllerActionKv?.Key == null) { throw new BlocksException(StringLocal.Format("Navigation or action {0} can't found", controllerPath)); } var controllerAction = controllerActionKv.Value.Value; var url = Mvc.Route.RouteHelper.GetUrl(navItem.RouteValues); var requirePermission = controllerAction.GetAuthorize()?.Select(p => Permission.Create(p, url, "navigation", url + "/" + p, new LocalizableString(navItem.DisplayName.SourceName, p))).ToArray(); return(new WebNavigationItemDefinition(navItem.Name, navItem.DisplayName, Mvc.Route.RouteHelper.GetUrl(navItem.RouteValues), navItem.RequiresAuthentication, requirePermission , navItem.CustomData, navItem.IsVisible, navItem.HasPermissions, navItem.RouteValues, navItem.NavigationType )); }
private MenuItemDefinition funTransfter(INavigationItemDefinition menuItem) { var localizableString = (LocalizableString)(menuItem.DisplayName); var menuDefinition = new MenuItemDefinition( menuItem.Name, new Abp.Localization.LocalizableString(localizableString.Name, localizableString.SourceName), null, RouteHelper.GetUrl(menuItem.RouteValues)); // menuItem.Items?.ForEach(navigationItemDefinition => // { // menuDefinition.AddItem(funTransfter(navigationItemDefinition)); // }); return(menuDefinition); }
public static string GetUniqueId(this INavigationItemDefinition navItem) { return(navItem.Name + "_" + navItem.RouteValues?[RouteConst.area]); }
/// <summary> /// Adds a <see cref="NavigationDefinition"/> to <see cref="Items"/>. /// </summary> /// <param name="navItem"><see cref="NavigationDefinition"/> to be added</param> /// <returns>This <see cref="NavigationDefinition"/> object</returns> public INavigationDefinition AddItem(INavigationItemDefinition navItem) { Items.Add(navItem); return(this); }