Beispiel #1
0
        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;
            }));
        }
Beispiel #2
0
        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;
            }));
        }