예제 #1
0
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            var response = new TransactionsStreamResponse();

            var jsonToken = JToken.Load(reader);

            if (jsonToken.Type == JTokenType.Object)
            {
                bool isHeartbeat = jsonToken["type"].Value <string>() == "HEARTBEAT";

                if (isHeartbeat)
                {
                    var heartbeat = new TransactionsHeartbeat();
                    serializer.Populate(jsonToken.CreateReader(), heartbeat);
                    response.heartbeat = heartbeat;
                }
                else
                {
                    ITransaction transaction = TransactionFactory.Create(jsonToken["type"].Value <string>());
                    serializer.Populate(jsonToken.CreateReader(), transaction);
                    response.transaction = transaction;
                }

                return(response);
            }
            else
            {
                throw new ArgumentException(string.Format("Unexpected JTokenType ({0}) in reader.", jsonToken.Type.ToString()));
            }
        }
예제 #2
0
        protected static void OnTransactionReceived(TransactionsStreamResponse data)
        {
            if (!data.IsHeartbeat())
            {
                WriteNewLine("V20 notification - New account transaction: " + data.transaction.type);
            }

            _transactionReceived.Release();
        }