예제 #1
0
        public async Task <CancelOrdersForGivenPairResponse> CancelOrdersForGivePair(SymbolPairs pair, EmptyPrivateRequest baseRequest)
        {
            string json = string.Empty;

            var client = new CexHttpClient();

            try
            {
                json = JsonConvert.SerializeObject(baseRequest);
            }
            catch (JsonException ex)
            {
                throw new JsonException(CexConstants.InvalidJsonException, ex);
            }

            var splittedPairs = pair.ToString().Split('_');

            using (HttpContent content = new StringContent(JsonConvert.SerializeObject(baseRequest)))
            {
                var responseObject = await client.CexPostAsync(CexConstants.CacelAllOrderWithPairsUrl(splittedPairs[0], splittedPairs[1]), content);

                var response = JsonConvert.DeserializeObject <CancelOrdersForGivenPairResponse>(responseObject.Item2);
                response.StatusCode = responseObject.Item1;

                return(response);
            }
        }
예제 #2
0
        public async Task <CancelOrderResponse> CancelOrder(CancelOrder cancelOrder)
        {
            string json = string.Empty;

            var client = new CexHttpClient();

            try
            {
                json = JsonConvert.SerializeObject(cancelOrder);
            }
            catch (JsonException ex)
            {
                throw new JsonException(CexConstants.InvalidJsonException, ex);
            }

            using (HttpContent content = new StringContent(json))
            {
                try
                {
                    var responseObject = await client.CexPostAsync(CexConstants.CancelOrderUrl, content);

                    return(new CancelOrderResponse()
                    {
                        StatusCode = responseObject.Item1
                    });
                }
                catch (HttpRequestException ex)
                {
                    throw new HttpRequestException(CexConstants.HttpPostRequestException, ex);
                }
            }
        }
예제 #3
0
        public async Task <Tuple <HttpStatusCode, string> > GetOpenOrdersAsync()
        {
            var client = new CexHttpClient();

            var openOrders = new EmptyPrivateRequest(_hmac)
            {
                Key = _credentials.ApiKey
            };

            using (HttpContent content = new StringContent(JsonConvert.SerializeObject(JsonConvert.SerializeObject(openOrders))))
            {
                return(await client.CexPostAsync(CexConstants.OpenOrdersUrl, content));
            }
        }
예제 #4
0
        public async Task <Tuple <HttpStatusCode, string> > GetAddressAsync(Symbols symbol)
        {
            var client = new CexHttpClient();

            var addressRequest = new AddressRequest(_hmac)
            {
                Key      = _credentials.ApiKey,
                Currency = symbol.ToString()
            };

            using (HttpContent content = new StringContent(JsonConvert.SerializeObject(JsonConvert.SerializeObject(addressRequest))))
            {
                return(await client.CexPostAsync(CexConstants.CryptoAddressUrl, content));
            }
        }
예제 #5
0
        public async Task <Tuple <HttpStatusCode, string> > GetOpenPositonsAsync(SymbolPairs pair)
        {
            var client = new CexHttpClient();

            var splittedPairs = pair.ToString().Split('_');

            var openPosition = new OpenPositionOrderRequest(_hmac)
            {
                Key = _credentials.ApiKey
            };

            using (HttpContent content = new StringContent(JsonConvert.SerializeObject(JsonConvert.SerializeObject(openPosition))))
            {
                return(await client.CexPostAsync(CexConstants.OpenPositionUrl(splittedPairs[0], splittedPairs[1]), content));
            }
        }
예제 #6
0
        public async Task <ClosePositionResponse> ClosePosition(SymbolPairs pair, ulong positionId)
        {
            var client = new CexHttpClient();

            var splittedPairs = pair.ToString().Split('_');

            var positionRequest = new PositionRequest(_apiSecret)
            {
                Key        = _credentials.ApiKey,
                PositionId = positionId
            };

            using (HttpContent content = new StringContent(JsonConvert.SerializeObject(JsonConvert.SerializeObject(positionRequest))))
            {
                var responseObject = await client.CexPostAsync(CexConstants.ClosePositionUrl(splittedPairs[0], splittedPairs[1]), content);

                var response = JsonConvert.DeserializeObject <ClosePositionResponse>(responseObject.Item2);
                response.StatusCode = responseObject.Item1;

                return(response);
            }
        }