public async Task <bool> invalidateProduct(int productID, int userID, int amount)
        {
            string productName = MUtilityClass.removeSpaces(await prodIDToProdName(productID));

            MConsumerController consumerCtrl = new MConsumerController(userID);

            consumerCtrl = await consumerCtrl.init();

            await consumerCtrl.invalidateProduct(productName, amount);

            return(true);
        }
        //issue - 'open: true' with metadata
        public Task <JsonRpcResponse <string> > IssueOpenWithMetadataFromAsync(string fromAddress, string toAddress, string newAssetName, int quantity, string metadataStr)
        {
            string newAssetNameNoSpaces = MUtilityClass.removeSpaces(newAssetName);
            var    metadataJson         = new MetadataJSON()
            {
                metadata = metadataStr
            };

            var issueAssetParamsJson = new IssueAssetParamsJSON()
            {
                name = newAssetNameNoSpaces,
                open = true
            };

            var metadataJsonStr = JsonConvert.SerializeObject(metadataJson.Values);
            var paramsJsonStr   = JsonConvert.SerializeObject(issueAssetParamsJson.Values);

            return(this.ExecuteAsync <string>("issuefrom", 0, fromAddress, toAddress, paramsJsonStr, quantity, 0.01, 0, metadataJsonStr));
        }