Exemplo n.º 1
0
        public Watchdog(
            ILogger logger,
            List <Server> servers,
            int openTimeDeltaInSeconds
            )
        {
            if (servers == null)
            {
                throw new ArgumentNullException(nameof(servers));
            }
            _openTimeDeltaInSeconds = openTimeDeltaInSeconds;
            _logger = logger ?? throw new ArgumentNullException(nameof(logger));

            _servers = SaveServersToDataStore(servers);


            InitPipeline();

            for (int i = 0; i < _servers.Count; i++)
            {
                var inst1 = new MT5Api();
                var inst2 = new MT5Api();

                HookConnectionEventHandlers(inst1, $"Deal-Events API instance for server [{_servers[i]}]");
                HookConnectionEventHandlers(inst2, $"Get-Balance API instance for server [{_servers[i]}]");

                _eventsApiInst.Add(inst1);
                _getBalanceApiInst.Add(inst2);
            }
        }
Exemplo n.º 2
0
 public ServerObserver(ILogger logger, IDealChecker dealChecker, ConcurrentBag <Deal> deals)
 {
     _logger         = logger ?? throw new ArgumentNullException(nameof(logger));
     _dealChecker    = dealChecker ?? throw new ArgumentNullException(nameof(dealChecker));
     _deals          = deals ?? throw new ArgumentNullException(nameof(deals));
     _mT5ApiRequests = new MT5Api();
     _mT5ApiDeals    = new MT5Api();
 }