コード例 #1
0
        public IActionResult AddItemToOrder(LineItem lineItemToAdd)
        {
            var order = _ordersRepository.CheckForValidOrderId(lineItemToAdd.OrderId);
            var checkOrderIsActive = _ordersRepository.CheckIfOrderIsActive(lineItemToAdd.OrderId);

            if (order && checkOrderIsActive != null)
            {
                var rubbish           = _rubbishRepository.CheckIfRubbishIsAvailable(lineItemToAdd.RubbishId);
                var itemAlreadyInCart = _ordersRepository.CheckForProductIdOnCurrentOrder(lineItemToAdd);
                if (rubbish != null)
                {
                    if (itemAlreadyInCart == null)
                    {
                        var newLineItem = _ordersRepository.AddNewLineItem(lineItemToAdd);
                        return(Ok(newLineItem));
                    }
                    return(BadRequest("This item is already in the cart.  Only unique items can be used for new line items."));
                }
                return(NotFound("That piece of rubbish is no longer available."));
            }
            return(NotFound("An open order was not found"));
        }