Example #1
0
        public FabCarItem ChangeCarOwner(string key, string newOwerner)
        {
            // changeCarOwner chaincode function - requires 2 args , ex: args: ['CAR10', 'Dave'],
            var t       = client.NewQueryProposalRequest();
            var request = t;

            t.ChaincodeID = new Hyperledger.Fabric.SDK.ChaincodeID()
            {
                Name = chaincode
            };
            t.Fcn  = "changeCarOwner";
            t.Args = new System.Collections.Generic.List <string>()
            {
                key,
                newOwerner
            };
            var response = channel.QueryByChaincode(t);

            if (!response[0].IsInvalid)
            {
                var item = new FabCarItem()
                {
                    Key    = key,
                    Record = Newtonsoft.Json.JsonConvert.DeserializeObject <Record>(System.Text.Encoding.UTF8.GetString(response[0].ChaincodeActionResponsePayload))
                };
                return(item);
            }
            Console.WriteLine(response[0].Message);
            return(null);
        }
Example #2
0
        public void CreateCar(FabCarItem carItem)
        {
            // createCar chaincode function - requires 5 args, ex: args: ['CAR12', 'Honda', 'Accord', 'Black', 'Tom'],

            var tx_id = client.NewTransactionProposalRequest();

            tx_id.Args = new List <string>()
            {
                carItem.Key,
                carItem.Record.make,
                carItem.Record.model,
                carItem.Record.color,
                carItem.Record.owner,
            };
            tx_id.ChaincodeID = new Hyperledger.Fabric.SDK.ChaincodeID()
            {
                Name = chaincode
            };
            tx_id.Fcn = "createCar";

            var result = channel.SendTransactionProposal(tx_id);

            if (result.Count > 0)
            {
                //  return Newtonsoft.Json.JsonConvert.DeserializeObject<FabCarCollections>(System.Text.Encoding.UTF8.GetString(result[0].ChaincodeActionResponsePayload));
                Console.WriteLine(result[0].TransactionID);

                var eventHub = client.NewEventHub("event1", $"grpc://{Program.ServerIP}:7053");
                channel.AddEventHub(eventHub);

                eventHub.ConnectAsync(result[0].TransactionContext).Wait();
                var result2 = channel.SendTransaction(result);
                while (true)
                {
                    Console.Write($"\r{eventHub.Status}");
                    break;
                }
            }

            //return null;
        }