protected override async Task Handle(UpdateTickers request, CancellationToken cancellationToken) { var stocks = await _repository.All <Stock>(); var stockSymbols = stocks.Select(s => s.Symbol).ToArray(); var tickers = await _marketDataProvider.GetIntradayPrice(stockSymbols); foreach (var stockTick in tickers) { var stock = stocks.Single(x => x.Symbol == stockTick.Symbol); stock.RecordPrice(stockTick); await _repository.Update(stock); await _mediator.Publish(new StockPriceUpdatedEvent(stock.Symbol, stockTick.Last)); } }