Exemple #1
0
        public async Task <Guid> NewOrderAsync(OrderRequest orderRequest)
        {
            var order = new Order(orderRequest.ClientName);
            await _orderRepository.AddAsync(order);

            var productsIds = orderRequest.Products.Select(x => x.ProductId).ToArray();
            var products    = await _productRepository.FindAsync(productsIds);

            foreach (var productOrder in orderRequest.Products)
            {
                var product      = products.FirstOrDefault(x => x.Id == productOrder.ProductId);
                var orderProduct = order.AddProduct(product, productOrder.Quantity);
                await _orderProductRepository.AddOrUpdateAsync(orderProduct);
            }

            return(order.Id);
        }