private static async Task InsertBulkBookAsync(BookProtoService.BookProtoServiceClient client)
        {
            Console.WriteLine("InsertBulkBookAsync started...");

            using var clientBulk = client.InsertBulkBook();

            for (int i = 0; i < 3; i++)
            {
                var book = new BookModel
                {
                    Title       = $"Title{i}",
                    Description = "Bulk inserted book.",
                    Price       = 399,
                    EditionType = EditionType.Gold,
                    AuthorId    = 2,
                    Copies      = 3,
                    //ReleaseDate = Timestamp.FromDateTime(DateTime.UtcNow)
                };

                await clientBulk.RequestStream.WriteAsync(book);
            }

            await clientBulk.RequestStream.CompleteAsync();

            InsertBulkBookResponse response = await clientBulk;

            Console.WriteLine($"Status: {response.Success}. Insert count: {response.InsertCount}");
        }
        public override async Task <InsertBulkBookResponse> InsertBulkBook(IAsyncStreamReader <BookModel> requestStream, ServerCallContext context)
        {
            while (await requestStream.MoveNext())
            {
                Book book = _mapper.Map <Book>(requestStream.Current);
                _bookContext.Books.Add(book);
            }

            int insertCount = await _bookContext.SaveChangesAsync();

            var response = new InsertBulkBookResponse
            {
                InsertCount = insertCount,
                Success     = insertCount > 0
            };

            return(response);
        }