public ExchangeRateUpdater(IJobManager jobManager, IExchangeRateProvider exchangeRateProvider, IContextHolder contextHolder) { _jobManager = jobManager; _exchangeRateProvider = exchangeRateProvider; _contextHolder = contextHolder; LastExecuted = DateTime.Now.AddSeconds(-RepetitionIntervalInSeconds * 2); _jobManager.Add(this); }
public void Execute() { try { if (!_updatingThroughput) { ProcessTransferRequests(); LastExecuted = DateTime.Now; _jobManager.Add(this); } } catch (Exception ex) { //Re-schedule inmediately on error _updatingThroughput = false; _logger.Error(ex); _jobManager.Add(this); } }
public void Execute() { try { _contextHolder.ExchangeRate = _exchangeRateProvider.GetCurrentRate(); if (null != _contextHolder.ExchangeRate) { //Adjust Bid Price to BTP to USD Exchange Rate decimal btpusd = _contextHolder.Config.ExchangeValue; _contextHolder.ExchangeRate.Bid = (_contextHolder.ExchangeRate.Bid / btpusd);//.TruncateDecimalPlaces(8); } LastExecuted = DateTime.Now; _jobManager.Add(this); } catch (Exception ex) { //Re-schedule inmediately on error _logger.Error(ex); _jobManager.Add(this); } }
internal ServiceResponse <TransferModel> HandleTransfer(TransferModel request) { Func <TransferModel> func = delegate { TransferModel response = new TransferModel() { FromAddress = request.FromAddress }; try { TransferRequest transfer = new TransferRequest() { Amount = 0, ConfirmationProgress = 0, ConfirmationRequired = 0, Created = DateTime.Now, Updated = DateTime.Now, FromAddress = request.FromAddress, FromCoin = CoinType.BTC.ToString(), Status = (int)TransferStatus.Unknown, ToAddress = request.ToAddress, ToCoin = CoinType.BTP.ToString() }; _iConnectionFactory.Run(con => _iTransferRequestRepository.Add(con, null, transfer)); //https://stackoverflow.com/questions/47487241/rawtx-rawblock-zmq-at-the-same-time _jobManager.Add(new Trigger { StartTime = DateTime.Now.AddSeconds(25), TaskAction = () => { _payoutManager.ProcessTransferRequests(new TransferRequest[] { transfer }); } }); response = GetTransferRequestForSymbol("btcusd").Result; } catch (Exception ex) { response.FromAddressBase64 = string.Empty; _logger.Error(ex); } return(response); }; return(this.Execute(func)); }
public PayoutManager(IJobManager jobManager, IContextHolder contextHolder, ITransferRequestRepository iTransferRequestRepository, ITransferRepository iTransferRepository, IConnectionFactory iConnectionFactory, JsonSerializerSettings jsonSerializerSettings, DaemonClientFactory daemonClientFactory, NotificationService notificationService) { _jobManager = jobManager; _contextHolder = contextHolder; _iTransferRequestRepository = iTransferRequestRepository; _iTransferRepository = iTransferRepository; _iConnectionFactory = iConnectionFactory; _jsonSerializerSettings = jsonSerializerSettings; _daemonClientFactory = daemonClientFactory; _notificationService = notificationService; _updatingThroughput = false; LastExecuted = DateTime.Now.AddSeconds(-RepetitionIntervalInSeconds * 2); _jobManager.Add(this); }