Ejemplo n.º 1
0
 public ExchangeService(IContextHolder contextHolder,
                        ITransferRequestRepository iTransferRequestRepository,
                        IConnectionFactory iConnectionFactory,
                        JsonSerializerSettings jsonSerializerSettings,
                        DaemonClientFactory daemonClientFactory,
                        PayoutManager payoutManager,
                        IJobManager jobManager)
 {
     _contextHolder = contextHolder;
     _iTransferRequestRepository = iTransferRequestRepository;
     _iConnectionFactory         = iConnectionFactory;
     _jsonSerializerSettings     = jsonSerializerSettings;
     _daemonClientFactory        = daemonClientFactory;
     _payoutManager = payoutManager;
     _jobManager    = jobManager;
 }
Ejemplo n.º 2
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            JsonSerializerSettings jsonSerializerSettings = new JsonSerializerSettings
            {
                ContractResolver = new CamelCasePropertyNamesContractResolver()
            };
            IJobManager                jobManager                = new JobManager();
            IExchangeRateProvider      exchangeRateProvider      = new BitfinexExchangeRateProvider();
            IContextHolder             contextHolder             = new ContextHolder(Configuration, jsonSerializerSettings);
            DaemonClientFactory        daemonClientFactory       = new DaemonClientFactory(contextHolder, jsonSerializerSettings);
            IConnectionFactory         dbFactory                 = new PgConnectionFactory(contextHolder);
            ITransferRequestRepository transferRequestRepository = new TransferRequestRepository();
            ITransferRepository        transferRepository        = new TransferRepository();
            NotificationService        notificationService       = new NotificationService(contextHolder, jsonSerializerSettings);

            services.AddSingleton <IContextHolder>(contextHolder);
            services.AddSingleton <IExchangeRateProvider>(exchangeRateProvider);
            services.AddSingleton <IJobManager>(jobManager);
            services.AddSingleton <JsonSerializerSettings>(jsonSerializerSettings);
            services.AddSingleton <DaemonClientFactory>(daemonClientFactory);
            services.AddSingleton <IConnectionFactory>(dbFactory);
            services.AddSingleton <ITransferRequestRepository>(transferRequestRepository);
            services.AddSingleton <ITransferRepository>(transferRepository);
            services.AddSingleton <NotificationService>(notificationService);

            jobManager.Start();

            //Lazy load, requires explicit instantiation
            ExchangeRateUpdater exchangeRateUpdater = new ExchangeRateUpdater(jobManager, exchangeRateProvider, contextHolder);
            PayoutManager       payoutManager       = new PayoutManager(jobManager, contextHolder, transferRequestRepository, transferRepository, dbFactory, jsonSerializerSettings, daemonClientFactory, notificationService);

            services.Configure <IISOptions>(options =>
            {
                options.ForwardClientCertificate = false;
            });
            services.AddSingleton <PayoutManager>(payoutManager);
            services.RegisterServices();

            // Add framework services.
            services.AddMvc();
        }
Ejemplo n.º 3
0
        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);
        }