Beispiel #1
0
        public JobFactory(IHistoricalDataBroker hdb,
                          ISettings settings,
                          QDMS.IDataStorage localStorage,
                          IEconomicReleaseBroker erb,
                          IDividendsBroker divb,
                          IEarningsAnnouncementBroker eab) : base()
        {
            _hdb = hdb;

            _host              = settings.updateJobEmailHost;
            _port              = settings.updateJobEmailPort;
            _username          = settings.updateJobEmailUsername;
            _password          = settings.updateJobEmailPassword;
            _sender            = settings.updateJobEmailSender;
            _email             = settings.updateJobEmail;
            _updateJobSettings = new UpdateJobSettings(
                noDataReceived: settings.updateJobReportNoData,
                errors: settings.updateJobReportErrors,
                outliers: settings.updateJobReportOutliers,
                requestTimeouts: settings.updateJobTimeouts,
                timeout: settings.updateJobTimeout,
                toEmail: settings.updateJobEmail,
                fromEmail: settings.updateJobEmailSender);
            _localStorage = localStorage;
            _erb          = erb;
            _divb         = divb;
            _eab          = eab;
        }
Beispiel #2
0
        public DatasourceModule(IMyDbContext context, IRealTimeDataBroker rtb, IHistoricalDataBroker hdb, IEconomicReleaseBroker erb)
            : base("/datasources")
        {
            this.RequiresAuthentication();

            Get["/", runAsync : true] = async(_, token) => await context.Datasources.ToListAsync(token).ConfigureAwait(false);

            Get["/status"] = _ =>
            {
                var realtime     = rtb.DataSources.Values.ToDictionary(x => x.Name, x => x.Connected);
                var historical   = hdb.DataSources.Values.ToDictionary(x => x.Name, x => x.Connected);
                var econReleases = erb.DataSources.Values.ToDictionary(x => x.Name, x => x.Connected);

                var names = realtime.Keys.Union(historical.Keys).Union(econReleases.Keys);

                var statuses = new List <DataSourceStatus>();
                foreach (var name in names)
                {
                    var status = new DataSourceStatus
                    {
                        Name = name,
                        RealtimeConnected     = realtime.ContainsKey(name) ? realtime[name] : (bool?)null,
                        HistoricalConnected   = historical.ContainsKey(name) ? historical[name] : (bool?)null,
                        EconReleasesConnected = econReleases.ContainsKey(name) ? econReleases[name] : (bool?)null,
                    };
                    statuses.Add(status);
                }

                return(statuses);
            };

            Get["/activestreams"] = _ => rtb.ActiveStreams;
        }
Beispiel #3
0
        public JobFactory(IHistoricalDataBroker hdb,
            string host,
            int port,
            string username,
            string password,
            string sender,
            string email,
            UpdateJobSettings updateJobSettings,
            QDMS.IDataStorage localStorage,
            IInstrumentSource instrumentSource,
            IEconomicReleaseBroker erb) : base()
        {
            _hdb = hdb;

            _host = host;
            _port = port;
            _username = username;
            _password = password;
            _sender = sender;
            _email = email;
            _updateJobSettings = updateJobSettings;
            _localStorage = localStorage;
            _instrumentSource = instrumentSource;
            _erb = erb;
        }
Beispiel #4
0
        public JobFactory(IHistoricalDataBroker hdb,
                          string host,
                          int port,
                          string username,
                          string password,
                          string sender,
                          string email,
                          UpdateJobSettings updateJobSettings,
                          QDMS.IDataStorage localStorage,
                          IEconomicReleaseBroker erb,
                          IDividendsBroker divb,
                          IEarningsAnnouncementBroker eab) : base()
        {
            _hdb = hdb;

            _host              = host;
            _port              = port;
            _username          = username;
            _password          = password;
            _sender            = sender;
            _email             = email;
            _updateJobSettings = updateJobSettings;
            _localStorage      = localStorage;
            _erb  = erb;
            _divb = divb;
            _eab  = eab;
        }
Beispiel #5
0
 public CustomBootstrapper(IDataStorage storage, IEconomicReleaseBroker erb, IHistoricalDataBroker hdb, IRealTimeDataBroker rtdb, string apiKey)
 {
     _storage = storage;
     _erb     = erb;
     _hdb     = hdb;
     _rtdb    = rtdb;
     _apiKey  = apiKey;
 }
Beispiel #6
0
        public HistoricalDataServer(int port, IHistoricalDataBroker broker = null)
        {
            _listenPort = port;

            _dataQueue = new ConcurrentQueue <KeyValuePair <HistoricalDataRequest, List <OHLCBar> > >();

            _broker = broker ?? new HistoricalDataBroker();
            _broker.HistoricalDataArrived += _broker_HistoricalDataArrived;
        }
Beispiel #7
0
        public HistoricalDataServer(int port, IHistoricalDataBroker broker = null)
        {
            _listenPort = port;

            _dataQueue = new ConcurrentQueue<KeyValuePair<HistoricalDataRequest, List<OHLCBar>>>();

            _broker = broker ?? new HistoricalDataBroker();
            _broker.HistoricalDataArrived += _broker_HistoricalDataArrived;
        }
Beispiel #8
0
 public HistoricalDataServer(MqServer server, IHistoricalDataBroker broker)
 {
     if (!ServerUtils.IsPortOpen(server.HostIp, server.Port, TimeSpan.FromSeconds(2)))
     {
         throw new PortIsInUseException($"{server.GetAddress()} is in use.");
     }
     connectionString = server.GetAddress();
     this.broker      = broker ?? throw new ArgumentNullException(nameof(broker), $"{nameof(broker)} cannot be null");
     this.broker.HistoricalDataArrived += BrokerHistoricalDataArrived;
 }
Beispiel #9
0
        public HistoricalDataServer(int port, IHistoricalDataBroker broker)
        {
            if (broker == null)
            {
                throw new ArgumentNullException(nameof(broker), $"{nameof(broker)} cannot be null");
            }

            _connectionString              = $"tcp://*:{port}";
            _broker                        = broker;
            _broker.HistoricalDataArrived += BrokerHistoricalDataArrived;
        }
Beispiel #10
0
        public HistoricalDataServer(int port, IHistoricalDataBroker broker)
        {
            if (broker == null)
            {
                throw new ArgumentNullException(nameof(broker), $"{nameof(broker)} cannot be null");
            }

            _connectionString = $"tcp://*:{port}";
            _broker = broker;
            _broker.HistoricalDataArrived += BrokerHistoricalDataArrived;
        }
Beispiel #11
0
        public DataUpdateJob(IHistoricalDataBroker broker, IEmailService emailService, UpdateJobSettings settings = null, IDataStorage localStorage = null, IInstrumentSource instrumentManager = null)
        {
            _broker          = broker;
            _emailService    = emailService;
            _errors          = new List <string>();
            _pendingRequests = new List <HistoricalDataRequest>();

            _settings          = settings ?? GetSettings();
            _localStorage      = localStorage ?? DataStorageFactory.Get();
            _instrumentManager = instrumentManager ?? new InstrumentManager();
        }
Beispiel #12
0
        public DataUpdateJob(IHistoricalDataBroker broker, IEmailService emailService, UpdateJobSettings settings = null, IDataStorage localStorage = null, IInstrumentSource instrumentManager = null)
        {
            _broker = broker;
            _emailService = emailService;
            _errors = new List<string>();
            _pendingRequests = new List<HistoricalDataRequest>();

            _settings = settings ?? GetSettings();
            _localStorage = localStorage ?? DataStorageFactory.Get();
            _instrumentManager = instrumentManager ?? new InstrumentManager();
        }
Beispiel #13
0
        public DataUpdateJob(IHistoricalDataBroker broker, IEmailService emailService, UpdateJobSettings settings, IDataStorage localStorage, IInstrumentSource instrumentManager)
        {
            if (settings == null) throw new ArgumentNullException("settings");
            if (localStorage == null) throw new ArgumentNullException("localStorage");
            if (instrumentManager == null) throw new ArgumentNullException("instrumentManager");

            _broker = broker;
            _emailService = emailService;
            _errors = new List<string>();
            _pendingRequests = new List<HistoricalDataRequest>();

            _settings = settings;
            _localStorage = localStorage;
            _instrumentManager = instrumentManager;
        }
Beispiel #14
0
 public CustomBootstrapper(
     IDataStorage storage,
     IEconomicReleaseBroker erb,
     IHistoricalDataBroker hdb,
     IRealTimeDataBroker rtdb,
     IDividendsBroker divb,
     IScheduler scheduler,
     string apiKey)
 {
     _storage   = storage;
     _erb       = erb;
     _hdb       = hdb;
     _rtdb      = rtdb;
     _divb      = divb;
     _scheduler = scheduler;
     _apiKey    = apiKey;
 }
 public CustomBootstrapper(
     IDataStorage storage,
     IEconomicReleaseBroker erb,
     IHistoricalDataBroker hdb,
     IRealTimeDataBroker rtdb,
     IDividendsBroker divb,
     IEarningsAnnouncementBroker eab,
     IScheduler scheduler,
     ISettings settings)
 {
     _storage   = storage;
     _erb       = erb;
     _hdb       = hdb;
     _rtdb      = rtdb;
     _divb      = divb;
     _eab       = eab;
     _scheduler = scheduler;
     _apiKey    = settings.apiKey;
 }
Beispiel #16
0
        /// <summary>
        /// </summary>
        /// <param name="broker"></param>
        /// <param name="emailService"></param>
        /// <param name="settings"></param>
        /// <param name="localStorage"></param>
        /// <param name="instrumentManager"></param>
        /// <exception cref="ArgumentNullException"><paramref name="instrumentManager"/> is <see langword="null" />.</exception>
        public DataUpdateJob(IHistoricalDataBroker broker, IEmailService emailService, UpdateJobSettings settings, IDataStorage localStorage, IInstrumentSource instrumentManager)
        {
            if (settings == null)
            {
                throw new ArgumentNullException(nameof(settings));
            }
            if (localStorage == null)
            {
                throw new ArgumentNullException(nameof(localStorage));
            }
            if (instrumentManager == null)
            {
                throw new ArgumentNullException(nameof(instrumentManager));
            }

            _broker          = broker;
            _emailService    = emailService;
            _errors          = new List <string>();
            _pendingRequests = new List <HistoricalDataRequest>();

            _settings          = settings;
            _localStorage      = localStorage;
            _instrumentManager = instrumentManager;
        }
Beispiel #17
0
 public void Dispose()
 {
     if (_routerSocket != null)
     {
         _routerSocket.Dispose();
         _routerSocket = null;
     }
     if (_context != null)
     {
         _context.Dispose();
         _context = null;
     }
     if (_broker != null)
     {
         _broker.Dispose();
         _broker = null;
     }
 }
Beispiel #18
0
 public HistoricalDataServer(int port, IHistoricalDataBroker broker, string host = "localhost", string transportProtocol = "tcp") :  this(new MqServer(port, host, (TransportProtocol)Enum.Parse(typeof(TransportProtocol), transportProtocol)), broker)
 {
 }