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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
 public void AttachProductListProduct(ProductListProduct productListProduct)
 {
     dataContext.Attach(productListProduct);
 }
Exemplo n.º 4
0
 public void AddProductListProduct(ProductListProduct productListProduct)
 {
     dataContext.Add(productListProduct);
 }