public async Task <IActionResult> GetTickers([FromQuery] string[] assetPairIds) { var entities = _tickersReader.Get(TickerEntity.GetPk()); List <TickerModel> result; if (entities.Any()) { result = _mapper.Map <List <TickerModel> >(entities); } else { var marketData = await _marketDataClient.GetMarketDataAsync(new Empty()); result = _mapper.Map <List <TickerModel> >(marketData.Items.ToList()); } if (assetPairIds.Any()) { result = result.Where(x => assetPairIds.Contains(x.AssetPairId, StringComparer.InvariantCultureIgnoreCase)) .ToList(); } return(Ok(ResponseModel <IReadOnlyCollection <TickerModel> > .Ok(result))); }
public override async Task <TickersResponse> GetTickers(TickersRequest request, ServerCallContext context) { var entities = _tickersReader.Get(TickerEntity.GetPk()); List <TickerUpdate> result; if (entities.Any()) { result = _mapper.Map <List <TickerUpdate> >(entities); } else { var marketData = await _marketDataClient.GetMarketDataAsync(new Empty()); result = _mapper.Map <List <TickerUpdate> >(marketData.Items.ToList()); } if (request.AssetPairIds.Any()) { result = result.Where(x => request.AssetPairIds.Contains(x.AssetPairId, StringComparer.InvariantCultureIgnoreCase)) .ToList(); } var response = new TickersResponse(); response.Payload.AddRange(result); return(response); }