/// <summary> /// Initializes a new instance of the <see cref="MenuGroup"/> class. /// </summary> /// <param name="name_">set menu group display name.</param> /// <param name="position_">set position of menu group.</param> /// <param name="menuItems_">list of menu items to add to this menu group.</param> /// <param name="fontAwesomeIconType_">type for font awesome icon.</param> /// <param name="fontAwesomeClass_">icon linked to menu group.</param> public MenuGroup(string name_, uint position_, IEnumerable <MenuItem> menuItems_, FontAwesomeIcon.IconType fontAwesomeIconType_ = FontAwesomeIcon.IconType.Far, string fontAwesomeClass_ = "fa-bars") { Name = name_; Position = position_; MenuItems = menuItems_; FontAwesomeIconType = fontAwesomeIconType_; FontAwesomeIconClass = fontAwesomeClass_; }
/// <summary> /// Initializes a new instance of the <see cref="MenuItem"/> class. /// </summary> /// <param name="url_">set menu item route url.</param> /// <param name="name_">set menu item display name.</param> /// <param name="position_">set menu item position in menu group.</param> /// <param name="fontAwesomeIconType_">type for font awesome icon.</param> /// <param name="fontAwesomeIconClass_">set menu item icon. If null, "fa-circle-o" will be used.</param> /// <param name="infrastructureAuthorizeAttributes_">set a list of <see cref="PermissionRequirementAttribute"/>.</param> /// <param name="microsoftAuthorizeAttributes_">set a list of <see cref="Microsoft.AspNetCore.Authorization.AuthorizeAttribute"/>.</param> public MenuItem( string url_, string name_, uint position_, FontAwesomeIcon.IconType fontAwesomeIconType_ = FontAwesomeIcon.IconType.Far, string fontAwesomeIconClass_ = "fa-circle", List <PermissionRequirementAttribute> infrastructureAuthorizeAttributes_ = null, List <Microsoft.AspNetCore.Authorization.AuthorizeAttribute> microsoftAuthorizeAttributes_ = null) { Url = url_; Name = name_; Position = position_; FontAwesomeIconType = fontAwesomeIconType_; FontAwesomeIconClass = fontAwesomeIconClass_; if (microsoftAuthorizeAttributes_ != null) { // Get the authorized roles and policies foreach (var attr in microsoftAuthorizeAttributes_) { if (!string.IsNullOrWhiteSpace(attr.Roles)) { _anyRequiredRoles.AddRange(attr.Roles.Split(',')); } if (!string.IsNullOrWhiteSpace(attr.Policy)) { _allRequiredPermissionIdentifiers.Add(attr.Policy); } } } if (infrastructureAuthorizeAttributes_ != null) { // Get the authorized permission identifiers foreach (var attr in infrastructureAuthorizeAttributes_) { if (!string.IsNullOrWhiteSpace(attr.PermissionIdentifier)) { _allRequiredPermissionIdentifiers.Add(attr.PermissionIdentifier); } } } }