Пример #1
0
        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);
        }
Пример #3
0
        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);
        }