Example #1
0
        public async Task <DigitalAccountTransactionModel> GetByIdAsync(int transactionId)
        {
            DigitalAccountTransactionModel transaction = await _digitalAccountTransactionRepository.GetByIdAsync(transactionId);

            if (transaction == null)
            {
                throw new KeyNotFoundException("Transação não localizada");
            }

            return(transaction);
        }
        public async Task ConsistQueueAsync(int transactionId)
        {
            DigitalAccountTransactionModel transaction = await _digitalAccountTransactionRepository.GetByIdAsync(transactionId);

            bool limitAttemptExceeded = false;

            if (transaction.DigitalAccountSenderId.HasValue)
            {
                limitAttemptExceeded = await CheckExceededLimitAttemptToIntervalTransactionAsync(transaction.DigitalAccountSenderId.Value);
            }

            if (transaction.DigitalAccountSenderId.HasValue && limitAttemptExceeded)
            {
                await GenerateRollbackTransation(transaction);
            }
            else
            {
                await EffectedTransation(transaction);
            }
        }