public async Task ClearOrder_should_remove_all_items()
        {
            // given
            var orderRepository = new OrderRepository();
            var product         = new Product {
                Name = "Shoe"
            };
            var item = new OrderItem {
                Product = product, Quantity = 2
            };
            var product2 = new Product {
                Name = "Hat"
            };
            var item2 = new OrderItem {
                Product = product2, Quantity = 1
            };
            var order = await orderRepository.AddItem(null, item);

            await orderRepository.AddItem(order.OrderId, item2);

            // when
            var cleanOrder = await orderRepository.ClearOrder(order.OrderId);

            // then
            Assert.Equal(0, cleanOrder.Items.Count);
        }
Example #2
0
        private void AddProductInOrder()
        {
            var index = ProductListBox.SelectedIndex;

            if (index == -1)
            {
                return;
            }
            var item = ProductList[index];

            orderRep.AddItem(item);
            PopulateOrderListBox();
        }
        public async Task RemoveItem_should_remove_item()
        {
            // given
            var orderRepository = new OrderRepository();
            var product         = new Product {
                Name = "A thing that looks a bit like a panda"
            };
            var item = new OrderItem {
                Product = product, Quantity = 1
            };
            var order = await orderRepository.AddItem(null, item);

            // when
            var orderAfterRemoving = await orderRepository.RemoveItem(order.OrderId, item.ItemId);

            // then
            Assert.Null(orderAfterRemoving.Items.SingleOrDefault(x => x.ItemId == item.ItemId));
        }
        public async Task UpdateQuantity_should_update_quantity()
        {
            // given
            var orderRepository = new OrderRepository();
            var product         = new Product {
                Name = "Saxophone "
            };
            var item = new OrderItem {
                Product = product, Quantity = 1
            };
            var order = await orderRepository.AddItem(null, item);

            // when
            var updatedOrder = await orderRepository.UpdateQuantity(order.OrderId, item.ItemId, 3);

            // then
            Assert.Equal(3, updatedOrder.Items.Single(x => x.ItemId == item.ItemId).Quantity);
        }
        public IActionResult CreateLineItem(int orderId, LineItem item)
        {
            var items = _repo.GetLineItems(orderId);

            var existingLineItem = items.Where(li => li.ProductId == item.ProductId).ToList();

            if (existingLineItem.Count > 0)
            {
                var updatedLineItemQuantity = patchLineItemQuantity(existingLineItem[0].LineItemId);
                var updatedItems            = _repo.GetLineItems(orderId).ToList();
                _repo.UpdatePurchaseOrderTotal(orderId, updatedItems);
                return(updatedLineItemQuantity);
            }

            _repo.AddItem(orderId, item);

            return(Created($"/api/orders/{orderId}/items/{item.LineItemId}", item));
        }
        public async Task AddItem_without_order_should_create_order()
        {
            // given
            var orderRepository = new OrderRepository();
            var product         = new Product {
                Name = "A large cat"
            };
            var item = new OrderItem {
                Product = product, Quantity = 4
            };

            // when
            var newOrder = await orderRepository.AddItem(null, item);

            // then
            Assert.NotNull(newOrder);
            Assert.Equal("A large cat", newOrder.Items.Single(x => x.ItemId == item.ItemId).Product.Name);
            Assert.Equal(4, newOrder.Items.First().Quantity);
        }
Example #7
0
        public async Task <IActionResult> PutOrderItem([FromRoute] int id, [FromRoute] int idd)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var order = await orderRepository.AddItem(id, idd);

            if (order == null)
            {
                return(BadRequest());
            }

            OrderDTO order_dto = new OrderDTO();

            order_dto.OrderId    = order.OrderId;
            order_dto.OrderName  = order.OrderName;
            order_dto.address    = order.address;
            order_dto.date       = order.date;
            order_dto.cost       = order.cost;
            order_dto.status     = order.status;
            order_dto.orderItems = new List <ProductDTO>();


            foreach (Product prod in order.orderItems)
            {
                ProductDTO prod_dto = new ProductDTO();
                prod_dto.ProductId   = prod.ProductId;
                prod_dto.name        = prod.name;
                prod_dto.description = prod.description;
                //get Category
                CategoryDTO cat_dto = new CategoryDTO();
                cat_dto.CategoryId  = prod.category.CategoryId;
                cat_dto.name        = prod.category.name;
                cat_dto.description = prod.category.description;

                order_dto.orderItems.Add(prod_dto);
            }

            return(Ok(order_dto));
        }