Пример #1
0
        public override async Task GetAllBooks(AllBooksRequest request,
                                               IServerStreamWriter <AllBooksReply> responseStream, ServerCallContext context)
        {
            _logger.Log(LogLevel.Information, "Function started");

            int counter = 0;

            while (!context.CancellationToken.IsCancellationRequested)
            {
                Thread.Sleep(100);
                if (counter == 1000)
                {
                    break;
                }
                var books = new List <Book>()
                {
                    new Book()
                    {
                        Description = $"Book_{counter++}", Title = $"Title_{counter}"
                    }
                };
                if (!books.Any())
                {
                    break;
                }

                _logger.Log(LogLevel.Information, $"Sending request for {counter}");

                var reply = new AllBooksReply();
                reply.Books.AddRange(books);
                await responseStream.WriteAsync(reply);
            }
        }
Пример #2
0
        public override async Task GetAllBooks(AllBooksRequest request, IServerStreamWriter <AllBooksReply> responseStream, ServerCallContext context)
        {
            var pageIndex = 0;

            while (!context.CancellationToken.IsCancellationRequested)
            {
                var books = BooksManager.ReadAll(++pageIndex, request.ItemsPerPage);
                if (!books.Any())
                {
                    break;
                }

                var reply = new AllBooksReply();
                reply.Books.AddRange(books);
                await responseStream.WriteAsync(reply);

                // Gotta look busy
                await Task.Delay(1000);
            }
        }