public virtual void SeedPermissions(RoleView view) { JsTreeNode root = new JsTreeNode(Titles.All); view.Permissions.Nodes.Add(root); IEnumerable<Permission> permissions = GetAllPermissions(); foreach (IGrouping<String, Permission> area in permissions.GroupBy(permission => permission.Area)) { JsTreeNode areaNode = new JsTreeNode(area.Key); foreach (IGrouping<String, Permission> controller in area.GroupBy(permission => permission.Controller).OrderBy(permission => permission.Key)) { JsTreeNode controllerNode = new JsTreeNode(controller.Key); foreach (Permission permission in controller) controllerNode.Nodes.Add(new JsTreeNode(permission.Id, permission.Action)); if (areaNode.Title == null) root.Nodes.Add(controllerNode); else areaNode.Nodes.Add(controllerNode); } if (areaNode.Title != null) root.Nodes.Add(areaNode); } }
public void JsTreeNode_SetsIdAndTitle() { JsTreeNode actual = new JsTreeNode(1, "Title"); Assert.Equal("Title", actual.Title); Assert.Equal(1, actual.Id); Assert.Empty(actual.Nodes); }
public void JsTreeNode_SetsTitle() { JsTreeNode actual = new JsTreeNode("Title"); Assert.Equal("Title", actual.Title); Assert.Empty(actual.Nodes); Assert.Null(actual.Id); }
private JsTree CreatePermissions() { JsTreeNode root = new JsTreeNode(Titles.All); JsTree expectedTree = new JsTree(); expectedTree.Nodes.Add(root); expectedTree.SelectedIds = role.Permissions.Select(rolePermission => rolePermission.PermissionId).ToList(); IEnumerable<Permission> permissions = role .Permissions .Select(rolePermission => rolePermission.Permission) .Select(permission => new Permission { Id = permission.Id, Area = ResourceProvider.GetPermissionAreaTitle(permission.Area), Controller = ResourceProvider.GetPermissionControllerTitle(permission.Area, permission.Controller), Action = ResourceProvider.GetPermissionActionTitle(permission.Area, permission.Controller, permission.Action) }); foreach (IGrouping<String, Permission> area in permissions.GroupBy(permission => permission.Area).OrderBy(permission => permission.Key ?? permission.FirstOrDefault().Controller)) { JsTreeNode areaNode = new JsTreeNode(area.Key); foreach (IGrouping<String, Permission> controller in area.GroupBy(permission => permission.Controller).OrderBy(permission => permission.Key)) { JsTreeNode controllerNode = new JsTreeNode(controller.Key); foreach (Permission permission in controller.OrderBy(permission => permission.Action)) controllerNode.Nodes.Add(new JsTreeNode(permission.Id, permission.Action)); if (areaNode.Title == null) root.Nodes.Add(controllerNode); else areaNode.Nodes.Add(controllerNode); } if (areaNode.Title != null) root.Nodes.Add(areaNode); } return expectedTree; }