public async Task <GetTransferAllowanceResponse> Handle(GetTransferAllowanceQuery message) { var transferAllowance = await _db.GetTransferAllowance(message.AccountId.Value, _configuration.TransferAllowancePercentage); return(new GetTransferAllowanceResponse { TransferAllowance = transferAllowance }); }
public async Task <GetTransferConnectionInvitationAuthorizationResponse> Handle(GetTransferConnectionInvitationAuthorizationQuery message) { var authorizationResult = await _authorizationService.GetAuthorizationResultAsync(FeatureType.TransferConnectionRequests); var transferAllowance = await _financeDb.GetTransferAllowance(message.AccountId.Value, _configuration.TransferAllowancePercentage); var isReceiver = await _accountDb.Value.TransferConnectionInvitations.AnyAsync(i => i.ReceiverAccount.Id == message.AccountId && ( i.Status == TransferConnectionInvitationStatus.Pending || i.Status == TransferConnectionInvitationStatus.Approved)); var isValidSender = transferAllowance.RemainingTransferAllowance >= Constants.TransferConnectionInvitations.SenderMinTransferAllowance && !isReceiver; return(new GetTransferConnectionInvitationAuthorizationResponse { AuthorizationResult = authorizationResult, IsValidSender = isValidSender, TransferAllowancePercentage = _configuration.TransferAllowancePercentage }); }
public Task <TransferAllowance> GetTransferAllowance(long accountId) { return(_db.GetTransferAllowance(accountId, _configuration.TransferAllowancePercentage)); }