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())); } }
protected static void OnTransactionReceived(TransactionsStreamResponse data) { if (!data.IsHeartbeat()) { WriteNewLine("V20 notification - New account transaction: " + data.transaction.type); } _transactionReceived.Release(); }