Пример #1
0
        public async Task LoadLoanOffersAsync(PoloniexClient PoloniexClient)
        {
            await Task.Run(async() =>
            {
                PublicLoanOffersData lendings = null;
                LendingOffer firstLoanOffer   = null;

                try
                {
                    lendings       = await PoloniexClient.Lendings.GetLoanOffersAsync("BTC");
                    firstLoanOffer = lendings.offers.OrderBy(x => x.rate).First();

                    if (MarketService.Instance().MarketList != null)
                    {
                        if (MarketService.Instance().MarketList.Any())
                        {
                            double ethPriceLast = MarketService.Instance().MarketList.First(x => x.Key.ToString().ToUpper().Equals("BTC_ETH")).Value.PriceLast;
                            double btcPriceLast = MarketService.Instance().MarketList.First(x => x.Key.ToString().ToUpper().Equals("USDT_BTC")).Value.PriceLast;

                            firstLoanOffer.ethExchangeValue = ethPriceLast;
                            firstLoanOffer.btcExchangeValue = btcPriceLast;


                            string dolarValor = FachadaWSSGSService.Instance().getUltimoValorVOResponse.getUltimoValorVOReturn.ultimoValor.svalor;

                            string eth     = string.Concat("BTC/ETH: ", firstLoanOffer.ethExchangeValue.ToString("0.00000000"));
                            string btc     = string.Concat("USDT/BTC: ", firstLoanOffer.btcExchangeValue.ToString("0.000000"));
                            string loan    = string.Concat("BTC Loan Rate: ", firstLoanOffer.rate.ToString("0.00000%"));
                            string dolar   = string.Concat("USD: ", double.Parse(dolarValor.Replace(".", ",")).ToString("C2"));
                            string btcReal = string.Concat("BTC: ", (firstLoanOffer.btcExchangeValue * double.Parse(dolarValor.Replace(".", ","))).ToString("C2"));

                            txtDisplay.Dispatcher.Invoke(DispatcherPriority.Background, (ThreadStart) delegate {
                                animation          = new DoubleAnimation((Application.Current.MainWindow.Width - 202), 0, TimeSpan.FromSeconds(10));
                                txtDisplay.Content = string.Concat(btc, "     ", eth, "     ", loan, "     ", dolar, "     ", btcReal);
                            });
                        }
                    }
                }
                finally
                {
                    lendings       = null;
                    firstLoanOffer = null;
                }
            });
        }
Пример #2
0
        private async Task LoadLoanOffersAsync()
        {
            await Task.Run(async() =>
            {
                selectedCurrency = "BTC"; //defaultValue

                PublicLoanOffersData lendings = null;
                LendingOffer firstLoanOffer   = null;
                IDictionary <CurrencyPair, IMarketData> markets = null;

                try
                {
                    if (PoloniexClient != null)
                    {
                        markets = await PoloniexClient.Markets.GetSummaryAsync();

                        cbCurrency.Dispatcher.Invoke(DispatcherPriority.Render, (ThreadStart) delegate
                        {
                            if (cbCurrency.SelectedValue != null)
                            {
                                if (cbCurrency.SelectedValue.ToString().Split(':').Any())
                                {
                                    selectedCurrency = cbCurrency.SelectedValue.ToString().Split(':')[1].ToString();
                                }
                            }
                        });

                        lendings = await PoloniexClient.Lendings.GetLoanOffersAsync(selectedCurrency.Trim());

                        if (markets != null)
                        {
                            if (markets.Any())
                            {
                                if (lendings != null)
                                {
                                    this.Dispatcher.Invoke(DispatcherPriority.Render, (ThreadStart) delegate
                                    {
                                        DataGrid1.Items.Clear();
                                        foreach (var offer in lendings.offers)
                                        {
                                            DataGrid1.Items.Add(offer);
                                        }
                                    });


                                    firstLoanOffer = lendings.offers.OrderBy(x => x.rate).First();

                                    if (firstLoanOffer != null)
                                    {
                                        using (var context = new LoanContext())
                                            if (!context.LendingOffers.Any(x => x.currency.Equals(selectedCurrency) &&
                                                                           x.amount.Equals(firstLoanOffer.amount) &&
                                                                           x.rate.Equals(firstLoanOffer.rate) &&
                                                                           x.rangeMin.Equals(firstLoanOffer.rangeMin) &&
                                                                           x.rangeMax.Equals(firstLoanOffer.rangeMax)))
                                            {
                                                firstLoanOffer.currency = selectedCurrency;
                                                context.LendingOffers.Add(firstLoanOffer);
                                                await context.SaveChangesAsync();
                                            }
                                    }

                                    await FillDetails(selectedCurrency);
                                }
                            }
                        }
                    }
                }
                finally
                {
                    firstLoanOffer = null;
                    lendings       = null;
                    markets        = null;
                }
            });
        }