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