public override Task GetPublicTradeUpdates(PublicTradesUpdatesRequest request, IServerStreamWriter <PublicTradeUpdate> responseStream, ServerCallContext context) { _publicTradeUpdate.Add(responseStream); return(Task.CompletedTask); }
public override async Task GetPublicTradeUpdates(PublicTradesUpdatesRequest request, IServerStreamWriter <PublicTradeUpdate> responseStream, ServerCallContext context) { Console.WriteLine($"New public trades stream connect. peer:{context.Peer}"); var data = await _tradesAdapterClient.GetTradesByAssetPairIdAsync(request.AssetPairId, 0, 50); var trades = _mapper.Map <List <PublicTrade> >(data.Records); var initData = new PublicTradeUpdate(); initData.Trades.AddRange(trades); var streamInfo = new StreamInfo <PublicTradeUpdate> { Stream = responseStream, CancelationToken = context.CancellationToken, Keys = new [] { request.AssetPairId }, Peer = context.Peer }; var task = await _publicTradesStreamService.RegisterStreamAsync(streamInfo, new List <PublicTradeUpdate> { initData }); await task; }