CSharpTradeOffers.Trading.EconServiceHandler.ModifyTradeOffer C# (CSharp) Метод

ModifyTradeOffer() публичный Метод

Modifies an existing trade offer.
public ModifyTradeOffer ( ulong partnerSid, string tradeoffermessage, string serverid, uint tradeofferidCountered, CSharpTradeOffers.Trading.TradeOffer offer, CookieContainer container ) : SendOfferResponse
partnerSid ulong The SteamId64 (ulong) of the person whose offer will be modified.
tradeoffermessage string An otpional message to be sent with the trade offer. Can be null.
serverid string Almost always 1, not quite sure what other numbers do.
tradeofferidCountered uint The TradeId of the offer to counter or modify.
offer CSharpTradeOffers.Trading.TradeOffer A TradeOffer object containing the trade parameters.
container System.Net.CookieContainer Auth Cookies MUST be passed here, the function will fail if not.
Результат SendOfferResponse
        public SendOfferResponse ModifyTradeOffer(ulong partnerSid, string tradeoffermessage,
            string serverid, uint tradeofferidCountered, TradeOffer offer, CookieContainer container)
        {
            const string url = "https://steamcommunity.com/tradeoffer/new/send";
            container.Add(new Cookie("bCompletedTradeOfferTutorial", "true") { Domain = "steamcommunity.com" });
            string sessionid = (from Cookie cookie in container.GetCookies(new Uri("https://steamcommunity.com"))
                                where cookie.Name == "sessionid"
                                select cookie.Value).FirstOrDefault();

            var data = new Dictionary<string, string>
            {
                {"sessionid", sessionid},
                {"serverid", serverid},
                {"partner", partnerSid.ToString()},
                {"tradeoffermessage", tradeoffermessage},
                {"json_tradeoffer", JsonConvert.SerializeObject(offer)},
                {"captcha", string.Empty},
                {"trade_offer_create_params", "{}"},
                {"tradeofferid_countered", tradeofferidCountered.ToString()}
            };
            return _web.Fetch(url, "POST", data, container, false,
                "https://steamcommunity.com/tradeoffer/" + tradeofferidCountered + "/")
                .DeserializeJson<SendOfferResponse>();
        }

Usage Example

Пример #1
0
        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);
                }
            }
        }