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); } }
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); } }