public PermissionServiceInterceptor(PermissionValidator permissionValidator, UserValidator userValidator) { _permissionValidator = permissionValidator; _userValidator = userValidator; BuildUp(new Dictionary <string, Action <IInvocation> > { { nameof(GetPermissionsForUserAsync), x => GetPermissionsForUserAsync((int)x.Arguments[0]) }, { nameof(GetSingleClaimAsync), x => GetSingleClaimAsync((int)x.Arguments[0], (int)x.Arguments[1]) }, { nameof(CreateClaimForUserAsync), x => CreateClaimForUserAsync((int)x.Arguments[0], (UserClaim)x.Arguments[1]) }, { nameof(DeleteClaimForUserAsync), x => DeleteClaimForUserAsync((int)x.Arguments[0], (int)x.Arguments[1]) } }); }
public Task <UserClaim> CreateClaimForUserAsync(int userId, UserClaim claim) { _userValidator.ValidateUserExists(userId); PermissionValidator.ValidateClaim(claim); _permissionValidator.ValidateClaimDoesntAlreadyExist(userId, claim); _permissionValidator.ValidateUpdatePermissions(); return(null); }