private static async Task InsertBulkProductAsync(ProductProtoService.ProductProtoServiceClient client) { Console.WriteLine("InsertBulkProductAsync started..."); using var clientBulk = client.InsertBulkProduct(); for (int i = 0; i < 3; i++) { var product = new ProductModel { Name = $"Product{i}", Description = "Bulk inserted product.", Price = 399, Status = ProductStatus.InStock, CreatedDate = Timestamp.FromDateTime(DateTime.UtcNow) }; await clientBulk.RequestStream.WriteAsync(product); } await clientBulk.RequestStream.CompleteAsync(); InsertBulkProductResponse response = await clientBulk; Console.WriteLine($"Status: {response.Success}. Insert count: {response.InsertCount}"); }
public override async Task <InsertBulkProductResponse> InsertBulkProduct(IAsyncStreamReader <ProductModel> requestStream, ServerCallContext context) { while (await requestStream.MoveNext()) { var product = _mapper.Map <Product>(requestStream.Current); _productContext.Product.Add(product); } var insertCount = await _productContext.SaveChangesAsync(); var response = new InsertBulkProductResponse { Success = insertCount > 0, InsertCount = insertCount }; return(response); }
public override async Task <InsertBulkProductResponse> InsertBulkProduct(IAsyncStreamReader <ProductModel> requestStream, ServerCallContext context) { // https://csharp.hotexamples.com/examples/-/IAsyncStreamReader/-/php-iasyncstreamreader-class-examples.html while (await requestStream.MoveNext()) { var product = _mapper.Map <Product>(requestStream.Current); _productDbContext.Product.Add(product); } var insertCount = await _productDbContext.SaveChangesAsync(); var response = new InsertBulkProductResponse { Success = insertCount > 0, InsertCount = insertCount }; return(response); }