Ejemplo n.º 1
0
        public async Task <GetTransferAllowanceResponse> Handle(GetTransferAllowanceQuery message)
        {
            var transferAllowance = await _db.GetTransferAllowance(message.AccountId.Value, _configuration.TransferAllowancePercentage);

            return(new GetTransferAllowanceResponse
            {
                TransferAllowance = transferAllowance
            });
        }
Ejemplo n.º 2
0
        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
            });
        }
Ejemplo n.º 3
0
 public Task <TransferAllowance> GetTransferAllowance(long accountId)
 {
     return(_db.GetTransferAllowance(accountId, _configuration.TransferAllowancePercentage));
 }