public async Task <OptionDetailsViewModel> Handle(Query request, CancellationToken cancellationToken) { var price = await _options.GetPrice(request.Ticker); if (price.NotFound) { return(null); } var dates = await _options.GetOptions(request.Ticker); var upToFour = dates.Take(4); var options = new List <OptionDetail>(); foreach (var d in upToFour) { var details = await _options.GetOptionDetails(request.Ticker, d); options.AddRange(details); } return(Mapper.MapOptionDetails(price.Amount, options)); }