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