Пример #1
0
        public async Task <ActionResult> ImportSpecificProducts([FromBody] ImportSpecificProductsDTO import)
        {
            var errors = new List <string>();

            for (int i = 0; i < import.Items.Count(); i++)
            {
                var item       = import.Items[i];
                var existingId = await _productService.FindSpecificProductByIdAsync(item.SpecificProductId);

                if (existingId == null)
                {
                    errors.Add($"Row {i + 2}. Specific product with ID {item.SpecificProductId} not exist");
                }
                if (item.Quantity < 1)
                {
                    errors.Add($"Row {i + 2}. Invalid quantity");
                }
            }

            if (errors.Count() == 0)
            {
                await _productService.ImportSpecificProductsAsync(import);
            }
            else
            {
                return(BadRequest(errors));
            }

            return(NoContent());
        }
Пример #2
0
        public async Task ImportSpecificProductsAsync(ImportSpecificProductsDTO import)
        {
            for (int i = 0; i < import.Items.Count(); i++)
            {
                var item     = import.Items[i];
                var existing = await _context.SpecificProducts.FindAsync(item.SpecificProductId);

                var newStock = existing.Stock + item.Quantity;
                existing.Stock = newStock;

                await _bus.Publish(new ImportSpecificProductMessage
                {
                    SpecificProductId = existing.Id,
                    Stock             = newStock
                });
            }

            await _context.SaveChangesAsync();
        }