private Task <List <OpenOrderSet> > MakeOpenOrderRequest <T>(BittrexApi api, string method, NameValueCollection parameters) { // Console.WriteLine("Making request: " + method); return(Task.Run(() => { string relativeUrl = "api/v1.1"; switch (api) { case BittrexApi.Account: relativeUrl = Path.Combine(relativeUrl, "account"); break; case BittrexApi.Market: relativeUrl = Path.Combine(relativeUrl, "market"); break; case BittrexApi.Public: relativeUrl = Path.Combine(relativeUrl, "public"); break; } relativeUrl = Path.Combine(relativeUrl, method); BittrexRequest request = new BittrexRequest() { Api = api, RelativeUrl = relativeUrl, Parameters = parameters == null ? new NameValueCollection() : parameters }; BittrexResponse <List <OpenOrderSet> > response = null; response = Client.SendRequestAsync <List <OpenOrderSet> >(request).GetAwaiter().GetResult(); if (!response.Success) { Console.WriteLine(response.Message); Console.ReadLine(); } if (response.Result == null) { Console.WriteLine("Request failed: " + method + " Parameters: "); parameters.AllKeys.ToList().ForEach(key => { Console.WriteLine(key + " , " + parameters.Get(key)); }); return null; } //var objects = response.Result.Select(item => JsonConvert.DeserializeObject<T>(item.ToString())).ToList(); //var dictionaries = response.Result.Select(item => JsonConvert.DeserializeObject<Dictionary<string, string>>(item.ToString())).ToArray(); //dictionaries.First().Keys.ToList().ForEach(key => Console.WriteLine(key)); return response.Result; })); }
private Task <T> MakeObjectRequest <T>(BittrexApi api, string method, NameValueCollection parameters) { return(Task.Run(() => { string relativeUrl = "api/v1.1"; switch (api) { case BittrexApi.Account: relativeUrl = Path.Combine(relativeUrl, "account"); break; case BittrexApi.Market: relativeUrl = Path.Combine(relativeUrl, "market"); break; case BittrexApi.Public: relativeUrl = Path.Combine(relativeUrl, "public"); break; } relativeUrl = Path.Combine(relativeUrl, method); BittrexRequest request = new BittrexRequest() { Api = api, RelativeUrl = relativeUrl, Parameters = parameters == null ? new NameValueCollection() : parameters }; BittrexResponse <T> response = null; try { response = Client.SendRequestAsync <T>(request).GetAwaiter().GetResult(); } catch (Exception e) { return default(T); } if (!response.Success) { Console.WriteLine(response.Message); } return response.Result; })); }