public TradeOrderStatusInfo GetOrderStatus(string aUuid) { if (!IsCredentialsSet) { throw new Exception("No Credentials were set"); } var lOrderNumber = Convert.ToInt64(aUuid); var lResult = new TradeOrderStatusInfo() { ID = aUuid }; using (PoloniexClient lClient = new PoloniexClient()) { var lResponse = lClient.GetOrderStatus(lOrderNumber); if (!lResponse.Success) { throw new Exception("Unable to retrieve order info from Poloniex"); } if (Convert.ToBoolean(lResponse.Data.success) && string.IsNullOrEmpty(lResponse.Data.error)) { if (!lResponse.Data.result.TryGetValue(aUuid, out PoloniexOrderStatus lOrderSummary)) { throw new Exception("Order info not found"); } lResult.Rate = lOrderSummary.rate; lResult.Completed = false; lResult.Cancelled = false; } else { var lOrderTradesResponse = lClient.GetOrderTrades(lOrderNumber); if (!lOrderTradesResponse.Success) { throw new Exception("Unable to retrieve order info from Poloniex"); } lResult.Cancelled = !string.IsNullOrEmpty(lOrderTradesResponse.Data.error); if (lResult.Completed = !lResult.Cancelled) { lResult.Rate = lOrderTradesResponse.Data.Average(lOrder => lOrder.rate); } } } return(lResult); }