internal Access GetAccess(AccessRight right, string role) { AccessPermission permission = //AccessPermissions.SingleOrDefault(x => x.AccessRight == right.Value && x.Role == role) ?? AccessPermissions .Where(x => x.AccessRight >= right.Value && x.Access != Access.Inherit && x.Role == role) .OrderBy(x => x.AccessRight) .FirstOrDefault(); return(permission == null ? Access.Inherit : permission.Access); }
public AccessPermissionBuilder To(params string[] roles) { foreach (var role in roles) { var permission = _permissions .SingleOrDefault(x => x.AccessRight == _right.Value && x.Role == role); if (permission == null) { permission = new AccessPermission { AccessRight = _right.Value, Role = role }; _permissions.Add(permission); } permission.Access = _access; } return(this); }