/// <summary> /// Подтверждаем трейд /// </summary> /// <param name="trade_id">id трейда</param> /// <param name="bot_id">id бота</param> /// <param name="account">авторизованный аккаунт</param> /// <returns>True - если обмен принят, иначе False</returns> bool AcceptTrade(uint trade_id, uint bot_id) { try { marketHandler.EligibilityCheck(_account.SteamId, _account.AuthContainer); var answer = offerHandler.AcceptTradeOffer(trade_id, bot_id, _account.AuthContainer, "1"); if (answer?.TradeId != null) { return(true); } return(false); } catch (NullReferenceException) { var nowTime = DateTimeOffset.Now.ToUnixTimeSeconds(); if (nowTime - _timeLastLogin > _config.SteamTimeOutRelogin) { Console.WriteLine("Переавторизовываемся"); Auth(); } return(false); } catch (Exception ex) { Console.WriteLine(new string('-', 50)); Console.WriteLine($"Message:{ex.Message}\nTarget:{ex.StackTrace}"); Console.WriteLine(new string('-', 50)); return(false); } }
private static void PollOffers() { Console.WriteLine("Polling offers every ten seconds."); bool isPolling = true; var offerHandler = new EconServiceHandler(_apiKey); var marketHandler = new MarketHandler(); marketHandler.EligibilityCheck(_account.SteamId, _account.AuthContainer); //required to perform trades (?). Checks to see whether or not we're allowed to trade. // ReSharper disable once ConditionIsAlwaysTrueOrFalse // ReSharper disable once LoopVariableIsNeverChangedInsideLoop while (isPolling) //permanent loop, can be changed { Thread.Sleep(10000); var recData = new Dictionary <string, string> { { "get_received_offers", "1" }, { "active_only", "1" }, { "time_historical_cutoff", "999999999999" } //arbitrarily high number to retrieve latest offers }; var offers = offerHandler.GetTradeOffers(recData).TradeOffersReceived; if (offers == null) { continue; } foreach (CEconTradeOffer cEconTradeOffer in offers) { if (cEconTradeOffer.ItemsToGive == null) { offerHandler.AcceptTradeOffer(cEconTradeOffer.TradeOfferId, cEconTradeOffer.AccountIdOther, _account.AuthContainer, "1"); Console.WriteLine("Accepted a donation!"); } else { offerHandler.DeclineTradeOffer(Convert.ToUInt64(cEconTradeOffer.TradeOfferId)); Console.WriteLine("Refused a \"donation\" that would have taken items from us."); } } } }