コード例 #1
0
        private async Task ProcessRequest(ScannerRequest request)
        {
            if (request.TrySetOffline())
            {
                Logger.Info("ScannerParameter: {0} is OFFLINE. Scheduled on: {1}", request.Parameter.Id, _timeProvider.Now + request.UntilExpiration);
                request.Signal();
                NotifyScannerChanges(request, new Scanner(), false);
                return;
            }

            // fetch the scanner from the market
            Logger.Info("Requesting scanner for ScannerParameter: {0}...", request.Parameter.Id);
            var scanner = await _marketDataProvider.GetScannerAsync(request.Parameter);

            Logger.Info("Received scanner for ScannerParameter: {0}", request.Parameter.Id);

            request.Signal();

            // Notify changes
            NotifyScannerChanges(request, scanner, true);

            // save the to database
            _scannerService.PersistScanner(scanner, request.Parameter.Id);
        }