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; } }); }
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; } }); }