Пример #1
0
        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)));
        }
Пример #2
0
        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);
        }