/// <summary> /// Requests decimal worth of an Item. /// </summary> /// <param name="item">An Item object to get the value of.</param> /// <returns>A decimal worth in USD.</returns> public decimal ItemWorth(Item item) { if (item.Tradable != 1) return 0.0m; var handler = new MarketHandler(); MarketValue mv = handler.GetPriceOverview(Convert.ToUInt32(item.AppId), item.MarketHashName); return Convert.ToDecimal(mv.MedianPrice.Substring(1)); }
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(Convert.ToUInt64(cEconTradeOffer.TradeOfferId), _account.AuthContainer, cEconTradeOffer.AccountIdOther, "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."); } } } }
private static void PollOffers() { Console.WriteLine("Polling offers every ten seconds."); bool isPolling = true; var offerHandler = new EconServiceHandler(_config.ApiKey); var marketHandler = new MarketHandler(); Inventory csgoInventory = new Inventory(_account.SteamId, 730); 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) { TradeOffer offer = new TradeOffer(); offer.Them.Assets = cEconTradeOffer.ItemsToReceive; offer.Me.Assets.Add(csgoInventory.Items.First().Value.Items.First().ToCEconAsset(730)); offerHandler.ModifyTradeOffer(IdConversions.AccountIdToUlong(cEconTradeOffer.AccountIdOther), "Here you go!", "1", cEconTradeOffer.TradeOfferId, offer, _account.AuthContainer); } } }
/// <param name="marketable"></param> /// <param name="appid"></param> /// <param name="marketHashName"></param> /// <returns></returns> public decimal ItemWorth(bool marketable, uint appid, string marketHashName) { if (marketable.IntValue() != 1) return 0.0m; var handler = new MarketHandler(); MarketValue mv = handler.GetPriceOverview(Convert.ToUInt32(appid), marketHashName); return Convert.ToDecimal(mv.MedianPrice.Substring(1)); }