public async Task Handle(ProductListUpdateCommand message, CancellationToken cancellationToken) { var productList = await productListRepository.Find(message.Id); var products = message.Products .Select(product => { // caso que no existe, estoy agregando uno if (!productList.ProductListProducts.Any(x => x.ProductId == product.Id)) { var item = new ProductListProduct(message.Id, product.Id, product.Quantity); productListRepository.AddProductListProduct(item); return(item); } else if (productList.ProductListProducts.Any(x => x.ProductId == product.Id)) { var item = new ProductListProduct(message.Id, product.Id, product.Quantity); return(item); } return(null); }).ToList(); productList.Update(message.Name, products); productListRepository.Update(productList); }
public async Task Handle(ProductListCreateCommand message, CancellationToken cancellationToken) { var products = message.Products .Select(product => { var item = new ProductListProduct(message.Id, product.Id, product.Quantity); productLists.AddProductListProduct(item); return(item); }) .ToList(); var productList = new ProductList(message.Id, message.Name, message.UserId, products); productLists.Add(productList); }