Beispiel #1
0
        public void GetTicker_Should_RespondWithPrice()
        {
            // arrange
            var expected = new BittrexPrice()
            {
                Ask = 0.001m, Bid = 0.002m, Last = 0.003m
            };
            var client = TestHelpers.CreateResponseClient(WrapInResult(expected));

            // act
            var result = client.GetTicker("BTC-ETH");

            // assert
            Assert.IsTrue(result.Success);
            Assert.IsTrue(TestHelpers.AreEqual(result.Data, expected));
        }
        public void GetTicker_Should_RespondWithPrice()
        {
            // arrange
            var expected = new BittrexPrice()
            {
                Ask = 0.001m, Bid = 0.002m, Last = 0.003m
            };
            var objects = TestHelpers.PrepareClient(() => Construct(), JsonConvert.SerializeObject(WrapInResult(expected)));

            // act
            var result = objects.Client.GetTicker("TestMarket");

            // assert
            Assert.IsTrue(result.Success);
            Assert.IsTrue(TestHelpers.PublicInstancePropertiesEqual(result.Data, expected));
        }
Beispiel #3
0
        public void GetTicker_Should_RespondWithPrice()
        {
            // arrange
            var expected = new BittrexPrice()
            {
                Ask = 0.001m, Bid = 0.002m, Last = 0.003m
            };
            var client = PrepareClient(JsonConvert.SerializeObject(WrapInResult(expected)));

            // act
            var result = client.GetTicker("TestMarket");

            // assert
            Assert.IsTrue(result.Success);
            Assert.IsTrue(ObjectComparer.PublicInstancePropertiesEqual(result.Result, expected));
        }
Beispiel #4
0
        public async Task <decimal> GetPrice(string baseCcy, string termsCurrency)
        {
            if (Helpers.Helpers.CurrenciesAreEquivalent(baseCcy, termsCurrency))
            {
                return(1);
            }

            BittrexPrice tick = null;

            try
            {
                tick = await GetTicker(baseCcy, termsCurrency);
            }
            catch (Exception e)
            {
                _log.LogError($"Error in getting {baseCcy}-{termsCurrency} ticker from Bittrex: {e.Message}");
            }

            if (tick != null && tick.Last != Decimal.Zero)
            {
                return(tick.Last);
            }

            var btcPrice = await GetTicker(Constants.BTC, termsCurrency);

            if (btcPrice?.Last != null)
            {
                var btcBasePrice = await GetTicker(Constants.BTC, baseCcy);

                if (btcBasePrice?.Last != null)
                {
                    return(btcPrice.Last * btcBasePrice.Last);
                }

                var baseBtcPrice = await GetTicker(baseCcy, Constants.BTC);

                if (baseBtcPrice?.Last != null)
                {
                    return(baseBtcPrice.Last * btcPrice.Last);
                }
            }
            return(0);
        }
        public async Task <decimal> GetPrice(string baseCcy, string termsCurrency)
        {
            BittrexPrice tick = null;

            try
            {
                tick = await GetTicker(baseCcy, termsCurrency);
            }
            catch (Exception e)
            {
                _log.LogError("Error in getting ticker from bittrex: " + e.Message);
            }

            if (tick != null && tick.Last != Decimal.Zero)
            {
                return(tick.Last);
            }

            var btcPrice = await GetTicker(Constants.BTC, termsCurrency);

            if (btcPrice?.Last != null)
            {
                var btcBasePrice = await GetTicker(Constants.BTC, baseCcy);

                if (btcBasePrice?.Last != null)
                {
                    return(btcPrice.Last * btcBasePrice.Last);
                }

                var baseBtcPrice = await GetTicker(baseCcy, Constants.BTC);

                if (baseBtcPrice?.Last != null)
                {
                    return(baseBtcPrice.Last * btcPrice.Last);
                }
            }
            return(0);
        }