static void Main(string[] args) { LocalBitcoins_API lb_api = new LocalBitcoins_API("auth key", "auth secret"); // укажите свои учётные данные API отсюда https://localbitcoins.com/accounts/api/ PlacesSerializationClass list_Places = lb_api.Places("53.950609", "40.475365"); //AdListBitcoinsOnlineSerializationClass list_Ads = lb_api.AdsByFilter(); Dictionary <string, TickerAllCurrenciesSerializationClass> list_TickerAllCurrencies = lb_api.TickerAllCurrencies; List <ClassCurrencies> list_currencies = lb_api.Currencies; AdListBitcoinsOnlineSerializationClass sell_bitcoin_online = lb_api.SellBitcoinsOnline(null, null, "rub", "qiwi"); // коды валют берём из: Currencies TradeItemSerializationClass[] list_trades = lb_api.Trades("RUB"); Dictionary <string, PaymentMethodsSerializationClass> list_PaymentMethods = lb_api.PaymentMethods("RU"); OrdersSerializationClass list_orders = lb_api.Orderbook("RUB"); CountryCodesSerializationClass list_CountryCodes = (CountryCodesSerializationClass)lb_api.CountryCodes; }
/// <summary> /// [async] запросить обновление BTC курса по публичным данным биржи LocalBitcoin /// </summary> protected override void ScheduleBodyAsyncAction() { SetStatus("Запрос к API-LocalBitcoins (не-авторизованый)"); AdListBitcoinsOnlineSerializationClass adListBitcoins = lb_api.BuyBitcoinsOnline(null, null, CurrentFiatCurrency, PaymentMethod); if (EnableFullRawTracert) { SetStatus("response body: " + Environment.NewLine + lb_api.api_raw.responsebody, StatusTypes.DebugStatus); } if (adListBitcoins == null) { SetStatus("Ошибка получения данных с сервера API", StatusTypes.ErrorStatus); SetStatus("http request status:" + lb_api.api_raw.HttpRequestStatus, StatusTypes.ErrorStatus); SetStatus(null); return; } List <AdListItem> buy_bitcoin_online = adListBitcoins.data.ad_list.Where(x => x.data.get_min_amount_as_double() <= SumFilter && x.data.profile.feedback_score >= FilterProfileFeedbackScore && x.data.get_temp_price() > 0) as List <AdListItem>; if (buy_bitcoin_online is null) { buy_bitcoin_online = new List <AdListItem>(); } string pagination_next = adListBitcoins.pagination?.next; while (adListBitcoins is null || (buy_bitcoin_online.Count() < 3 && !string.IsNullOrWhiteSpace(pagination_next))) { adListBitcoins = lb_api.BuyBitcoinsOnline(null, null, null, null, pagination_next); if (EnableFullRawTracert) { SetStatus("response body: " + Environment.NewLine + lb_api.api_raw.responsebody, StatusTypes.DebugStatus); } if (adListBitcoins is null) { SetStatus("Ошибка получения данных от сервера", StatusTypes.ErrorStatus); SetStatus("HttpRequestStatus: " + lb_api.api_raw.HttpRequestStatus, StatusTypes.ErrorStatus); SetStatus("Ещё одна попытка..."); continue; } SetStatus("Получено [" + adListBitcoins.data.ad_list.Count() + "] объявлений"); pagination_next = adListBitcoins.pagination?.next; IEnumerable <AdListItem> ie_ads = adListBitcoins.data.ad_list.Where(x => x.data.get_min_amount_as_double() <= SumFilter && x.data.profile.feedback_score >= FilterProfileFeedbackScore && x.data.get_temp_price() > 0); if (ie_ads != null) { SetStatus("После применения фильтров к объявлениям осталось [" + ie_ads.Count() + "] объявлений"); buy_bitcoin_online.AddRange(ie_ads.ToList()); } } if (buy_bitcoin_online.Count() == 0) { SetStatus("Ошибка получения курса. Ни одного предложения.", StatusTypes.ErrorStatus); SetStatus(null); return; } BtcRateLocalbitcoinsModel btcRate = new BtcRateLocalbitcoinsModel() { CountRates = buy_bitcoin_online.Count, DateCreate = DateTime.Now, Information = "Снимок состяния Localbitcoins qiwi", MaxRate = double.MinValue, MinRate = double.MaxValue }; foreach (AdListItem ad_item in buy_bitcoin_online.Take(3)) { btcRate.MaxRate = Math.Max(btcRate.MaxRate, ad_item.data.get_temp_price()); btcRate.MinRate = Math.Min(btcRate.MinRate, ad_item.data.get_temp_price()); } lock (RatesBTC) { RatesBTC.Add(btcRate); RatesBTC = new ConcurrentBag <BtcRateLocalbitcoinsModel>(RatesBTC.OrderBy(x => x.DateCreate)); if (MaxSizeTransit < RatesBTC.Count) { RatesBTC = new ConcurrentBag <BtcRateLocalbitcoinsModel>(RatesBTC.Skip(RatesBTC.Count - MaxSizeTransit)); } } SetStatus(null); SetStatus("В памяти зафиксирована информация Localbitcoins RatesBTC[" + RatesBTC.Count + "]"); CurrentBtcRate = (btcRate.MaxRate + btcRate.MinRate) / 2; SetStatus(null); }