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); } }
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(); }