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);
        }
示例#2
0
        public override async Task <TickersResponse> GetTickers(TickersRequest request, ServerCallContext context)
        {
            var marketData = await _marketDataClient.GetMarketDataAsync(new Empty());

            var items = marketData.Items.ToList();

            if (request.AssetPairIds.Any())
            {
                items = items.Where(x =>
                                    request.AssetPairIds.Contains(x.AssetPairId, StringComparer.InvariantCultureIgnoreCase))
                        .ToList();
            }

            var result = new TickersResponse();

            result.Payload.AddRange(_mapper.Map <List <Ticker> >(items));

            return(result);
        }