Exemplo n.º 1
0
        async static Task HandleUnaryCallWithMultiResponse(Ticker.TickerClient client, int?count = null)
        {
            MultipleTicksRequest request = null;

            if (count == null)
            {
                request = new MultipleTicksRequest {
                    EmptyRequest = new EmptyRequest()
                };
            }
            else
            {
                request = new MultipleTicksRequest {
                    TicksRequested = new TicksForRequest {
                        Count = (int)count
                    }
                };
            }

            var reply = await client.GetTicksAsync(request);

            if (reply.Code == GrpcProtoLibrary.Protos.Ticker.StatusCode.Error)
            {
                Console.WriteLine("Error occured while retriving data!!!");
                return;
            }

            foreach (var tick in reply.Ticks)
            {
                WriteSingleTick(tick);
            }
        }
Exemplo n.º 2
0
        public override async Task<MultipleTicksReply> GetTicks(MultipleTicksRequest request, ServerCallContext context)
        {
            _logger.LogInformation("Request GetQuotes received !!!");

            IEnumerable<Tick> ticks = null;

            switch (request.RequestCase)
            {
                case MultipleTicksRequest.RequestOneofCase.EmptyRequest:
                    ticks = await _service.GetAll(null);
                    break;

                case MultipleTicksRequest.RequestOneofCase.TicksRequested:
                    ticks = await _service.GetAll(request.TicksRequested.Count);
                    break;

                default:
                    ticks = null;
                    break;
            }
            if (ticks == null)
                return new MultipleTicksReply { Code = GrpcProtoLibrary.Protos.Ticker.StatusCode.Error };

            var destinationTicks = ticks.Select(x => _mapper.Map<TickReply>(x));

            return new MultipleTicksReply
            {
                Code = GrpcProtoLibrary.Protos.Ticker.StatusCode.Success,
                Ticks =
                {
                    _mapper.Map<RepeatedField<TickReply>>(destinationTicks)
                }
            };
        }