public static ECurrency ToSourceCurrency(this EConversion conversion) { switch (conversion) { case EConversion.KrwgBtc: case EConversion.KrwgUsdg: return(ECurrency.KRWG); case EConversion.UsdgKrwg: case EConversion.UsdgBtc: return(ECurrency.USDG); case EConversion.BtcKrwg: case EConversion.BtcUsdg: case EConversion.BtcsUsdcg: return(ECurrency.BTC); case EConversion.sUsdcgBtc: return(ECurrency.sUSDCG); default: throw new ArgumentOutOfRangeException($"No corresponding source currency for {conversion}."); } }
public static bool IsSourceCurrencyBtc(this EConversion conversion) { return(conversion.ToSourceCurrency() == ECurrency.BTC); }
/// <summary> /// Get current order book. /// </summary> /// <param name="conversion">Conversion symbol.</param> /// <param name="limit">Number of orders to include in the result. Ordered by descending price (best price first). Defaults to 100, maximum of 1000.</param> /// <response code="200">List of active orders</response> /// <response code="400">Invalid request parameters.</response> /// <returns></returns> public async Task <Result <List <GetOrderBookResponse>, ErrorResponse> > GetOrderBook(EConversion conversion, uint limit = 100) { var result = new Result <List <GetOrderBookResponse>, ErrorResponse>(); string requestUri = $"{mEnv.BaseUrl}/v1/OrderBook/{conversion}"; List <string> queryParams = new List <string>(); queryParams.Add($"limit={limit}"); if (queryParams.Any()) { requestUri = $"{requestUri}?{string.Join("&", queryParams)}"; } try { using (HttpClient httpClient = new HttpClient()) { using (HttpResponseMessage response = await httpClient.GetAsync(requestUri)) { if (response.IsSuccessStatusCode) { List <GetOrderBookResponse> orderBookResponse = await response.Content.ReadAsAsync <List <GetOrderBookResponse> >(); result.IsSuccess = true; result.Data = orderBookResponse; return(result); } string contentString = await response.Content.ReadAsStringAsync(); result.Error = ResponseHandler.GetError(response.StatusCode, requestUri, contentString); } } } catch (HttpRequestException) { result.IsSuccess = false; result.Error = ResponseHandler.GetExceptionError(); } return(result); }