public static TradeAnswer ReadFromJSON(string answer) { JObject data = JObject.Parse(answer)["return"] as JObject; JValue success = JObject.Parse(answer)["success"] as JValue; JValue error = JObject.Parse(answer)["error"] as JValue; if ((int)success == 1) { var o = data["funds"].ToObject <Dictionary <string, decimal> >(); List <Currency> currencies = new List <Currency>(); foreach (string key in o.Keys) { currencies.Add(new Currency(BTCeCurrencyHelper.FromString(key), o[key])); } TradeAnswer tradeAnwer = new TradeAnswer() { Currencies = currencies, Received = data.Value <decimal>("received"), Remains = data.Value <decimal>("remains"), OrderId = data.Value <int>("order_id") }; return(tradeAnwer); } throw new BTCeAPIException((string)error); }
/// <summary> /// Place single trade with passed parameters /// </summary> /// <param name="pair">Trade Pair (currency)</param> /// <param name="type">Trade Type</param> /// <param name="rate">Trade Rate</param> /// <param name="amount">Trade Amount</param> /// <returns>On successful operation will return populated TradeAnswer, on error will throw BTCeException with original BTCe API error message</returns> public TradeAnswer PlaceOrder(BTCePair pair, BTCeTradeType type, decimal rate, decimal amount) { if (!authenticated) { throw new BTCeAPIException("Not Authenticated"); } var resultStr = Query(new Dictionary <string, string>() { { "method", "Trade" }, { "pair", BtcePairHelper.ToString(pair) }, { "type", TradeTypeHelper.ToString(type) }, { "rate", DecimalToString(rate) }, { "amount", DecimalToString(amount) } }); return(TradeAnswer.ReadFromJSON(resultStr)); }