public JObject updateProductItem(JObject request) { //Validate arguments string productItemID; string productID = null; request.TryGetValue("productItemID", out JToken itemIdValue); request.TryGetValue("productID", out JToken idValue); if (itemIdValue == null || itemIdValue.Type != JTokenType.String) { return(Templates.MissingArguments("productItemID")); } else { productItemID = itemIdValue.ToObject <string>(); } if (idValue != null || idValue.Type != JTokenType.String) { productID = idValue.ToObject <string>(); if (productID == "0") { return(Templates.InvalidArgument("productID")); } } //Get product, if it exists Product product = GetObject <Product>(productID); if (product == null) { return(Templates.NoSuchProduct(productID)); } //get productItem, if it exists ProductItem item = GetObject <ProductItem>(productItemID); if (item == null) { return(Templates.NoSuchProductItem(productItemID)); } //Change product ID, if necessary if (productID != null) { item.ProductId = productID; } item.Update(Connection); //Create response return(new JObject() { { "reason", null }, }); }