public ExchangeService(
     [NotNull] IMerchantWalletService merchantWalletService,
     [NotNull] IAssetRatesService assetRatesService,
     [NotNull] IAssetSettingsService assetSettingsService,
     [NotNull] IBcnSettingsResolver bcnSettingsResolver,
     [NotNull] ITransferService transferService,
     [NotNull] ITransactionsService transactionsService,
     [NotNull] IWalletBalanceValidator walletBalanceValidator,
     [NotNull] IWalletHistoryService walletHistoryService,
     [NotNull] RetryPolicySettings retryPolicySettings,
     [NotNull] ILogFactory logFactory)
 {
     _merchantWalletService =
         merchantWalletService ?? throw new ArgumentNullException(nameof(merchantWalletService));
     _assetRatesService    = assetRatesService ?? throw new ArgumentNullException(nameof(assetRatesService));
     _assetSettingsService =
         assetSettingsService ?? throw new ArgumentNullException(nameof(assetSettingsService));
     _bcnSettingsResolver    = bcnSettingsResolver ?? throw new ArgumentNullException(nameof(bcnSettingsResolver));
     _transferService        = transferService ?? throw new ArgumentNullException(nameof(transferService));
     _transactionsService    = transactionsService ?? throw new ArgumentNullException(nameof(transactionsService));
     _walletBalanceValidator = walletBalanceValidator ?? throw new ArgumentNullException(nameof(walletBalanceValidator));
     _walletHistoryService   = walletHistoryService ?? throw new ArgumentNullException(nameof(walletHistoryService));
     _log         = logFactory.CreateLog(this);
     _retryPolicy = Policy
                    .Handle <InsufficientFundsException>()
                    .Or <ExchangeOperationFailedException>()
                    .Or <ExchangeOperationPartiallyFailedException>()
                    .WaitAndRetryAsync(
         retryPolicySettings.DefaultAttempts,
         attempt => TimeSpan.FromSeconds(Math.Pow(2, attempt)),
         (ex, timespan) => _log.Error(ex, "Exchange with retry"));
 }
Exemple #2
0
 public AssetRatesController(
     [NotNull] IAssetRatesService assetRatesService,
     [NotNull] IAssetsLocalCache assetsLocalCache,
     [NotNull] ILykkeAssetsResolver lykkeAssetsResolver,
     [NotNull] ILogFactory logFactory)
 {
     _assetRatesService   = assetRatesService ?? throw new ArgumentNullException(nameof(assetRatesService));
     _assetsLocalCache    = assetsLocalCache ?? throw new ArgumentNullException(nameof(assetsLocalCache));
     _lykkeAssetsResolver = lykkeAssetsResolver ?? throw new ArgumentNullException(nameof(lykkeAssetsResolver));
     _log = logFactory.CreateLog(this);
 }
 public CalculationService(
     [NotNull] IAssetsLocalCache assetsLocalCache,
     [NotNull] LpMarkupSettings lpMarkupSettings,
     [NotNull] IAssetRatesService assetRatesService,
     [NotNull] ILogFactory logFactory)
 {
     _assetsLocalCache = assetsLocalCache ?? throw new ArgumentNullException(nameof(assetsLocalCache));
     _lpMarkupSettings = lpMarkupSettings ?? throw new ArgumentNullException(nameof(lpMarkupSettings));
     _log = logFactory.CreateLog(this);
     _assetRatesService = assetRatesService ?? throw new ArgumentNullException(nameof(assetRatesService));
 }
Exemple #4
0
        public void TestInitialize()
        {
            _assetPairRateRepositoryMock  = new Mock <IAssetPairRateRepository>();
            _lykkeMarketProfileMock       = new Mock <ILykkeMarketProfile>();
            _assetsLocalCacheMock         = new Mock <IAssetsLocalCache>();
            _assetPairSettingsServiceMock = new Mock <IAssetPairSettingsService>();

            _assetRatesService = new AssetRatesService(
                _assetPairRateRepositoryMock.Object,
                _lykkeMarketProfileMock.Object,
                _assetsLocalCacheMock.Object,
                _assetPairSettingsServiceMock.Object);
        }