private Task <JobTaskResult> GenerateAsync(WorkerResult workerResult) { return(Task.Run(() => { var result = ResultWindowItem.Parse(workerResult); var max = (int)Math.Floor(workerResult.Elapsed.TotalMilliseconds / 1000); var throughput = workerResult.Seconds .Where(r => r.Key < max && r.Value.Count > 0) .OrderBy(r => r.Key) .Select(r => new DataPoint(r.Key, r.Value.Count)); return new JobTaskResult { ResultWindowItem = result, Throughput = throughput }; })); }