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")); }