Example #1
0
        public bool Pay(string userId, double amount)
        {
            _logger.Log("PaymentStart");
            var result     = false;
            var securityId = _securityInfo.GetFromUserId(userId);

            _logger.Log($"Security id {securityId} for user id {userId}");
            _transaction.Start();
            _transaction.Do(() =>
            {
                result = _payment.Pay(securityId, amount);
                _logger.Log($"Paying {amount} for security id {securityId}");
            });

            _transaction.End();
            _logger.Log("Transaction end");
            _logger.Log($"Payment result {result}");

            return(result);
        }