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