public async Task <IEnumerable <Vote> > Handle(VoteCountBatchQuery request, CancellationToken cancellationToken)
        {
            var results = await(request.OptionNames is null || request.OptionNames.Count == 0
                ? GetAllOptions(request.SubjectIds)
                : GetOptions(request.SubjectIds, request.OptionNames));

            return(results.SelectMany((entries, index) => ToModel(request.SubjectIds[index], entries)));
        }
        public async Task <IEnumerable <Vote> > Handle(VoteCountBatchQuery request, CancellationToken cancellationToken)
        {
            var batch     = _db.CreateBatch();
            var hashTasks = request.SubjectIds
                            .Select(subjectId => batch.HashGetAllAsync(MapKey(subjectId)))
                            .ToArray();

            batch.Execute();

            var results = await Task.WhenAll(hashTasks);

            return(results.SelectMany((entries, index) => ToModel(request.SubjectIds[index], entries)));
        }