public ComputeService(
     ILogger <ComputeService> logger,
     PubSubService pubSubService,
     StorageService redisService,
     ShutdownService shutdownService,
     RecordingServiceClient recordServiceClient
     )
 {
     _logger              = logger;
     _pubSubService       = pubSubService;
     _storageService      = redisService;
     _shutdownService     = shutdownService;
     _recordServiceClient = recordServiceClient;
 }
        public StorageService(
            ILogger <StorageService> logger,
            RedisService redisService,
            PubSubService pubSubService,
            RecordingServiceClient recordClient
            )
        {
            _logger       = logger;
            _pubSub       = pubSubService;
            _recordClient = recordClient;

            var redisClient = redisService.Client;

            _database = redisClient.GetDatabase(0);
        }
        public PollSummaryService(
            ILogger <PollSummaryService> logger,
            PubSubService pubSubService,
            StorageService redisService,
            ShutdownService shutdownService,
            RecordingServiceClient recordServiceClient
            )
        {
            _logger              = logger;
            _pubSubService       = pubSubService;
            _storageService      = redisService;
            _shutdownService     = shutdownService;
            _recordServiceClient = recordServiceClient;
            _cancelTokenSource   = new CancellationTokenSource();



            // Streaming from a sequence is currently not implemented
            var streamRecords = new Voting.Record.StreamRecordsRequest();
            var readStream    = _recordServiceClient.StreamRecords(streamRecords, new CallOptions(cancellationToken: _cancelTokenSource.Token));

            HandleResponseStream(readStream);
            shutdownService.RegisterShutdownCallback(() => { _cancelTokenSource.Cancel(); });
        }