Ejemplo n.º 1
0
        private async Task <ParseTradeResult> ParseTrade(Steam.TradeOffer tradeOffer)
        {
            if (tradeOffer == null)
            {
                Bot.ArchiLogger.LogNullError(nameof(tradeOffer));
                return(null);
            }

            if (tradeOffer.State != Steam.TradeOffer.ETradeOfferState.Active)
            {
                Bot.ArchiLogger.LogGenericError(string.Format(Strings.ErrorIsInvalid, tradeOffer.State));
                return(null);
            }

            ParseTradeResult result = await ShouldAcceptTrade(tradeOffer).ConfigureAwait(false);

            if (result == null)
            {
                Bot.ArchiLogger.LogNullError(nameof(result));
                return(null);
            }

            switch (result.Result)
            {
            case ParseTradeResult.EResult.AcceptedWithItemLose:
            case ParseTradeResult.EResult.AcceptedWithoutItemLose:
                Bot.ArchiLogger.LogGenericInfo(string.Format(Strings.AcceptingTrade, tradeOffer.TradeOfferID));
                await Bot.ArchiWebHandler.AcceptTradeOffer(tradeOffer.TradeOfferID).ConfigureAwait(false);

                break;

            case ParseTradeResult.EResult.RejectedPermanently:
            case ParseTradeResult.EResult.RejectedTemporarily:
                if (result.Result == ParseTradeResult.EResult.RejectedPermanently)
                {
                    if (Bot.BotConfig.IsBotAccount)
                    {
                        Bot.ArchiLogger.LogGenericInfo(string.Format(Strings.RejectingTrade, tradeOffer.TradeOfferID));
                        await Bot.ArchiWebHandler.DeclineTradeOffer(tradeOffer.TradeOfferID).ConfigureAwait(false);

                        break;
                    }

                    IgnoredTrades.Add(tradeOffer.TradeOfferID);
                }

                Bot.ArchiLogger.LogGenericInfo(string.Format(Strings.IgnoringTrade, tradeOffer.TradeOfferID));
                break;
            }

            return(result);
        }
Ejemplo n.º 2
0
        private async Task <ParseTradeResult> ParseTrade(Steam.TradeOffer tradeOffer)
        {
            if (tradeOffer == null)
            {
                Logging.LogNullError(nameof(tradeOffer), Bot.BotName);
                return(null);
            }

            if (tradeOffer.State != Steam.TradeOffer.ETradeOfferState.Active)
            {
                Logging.LogGenericError("Ignoring trade in non-active state!", Bot.BotName);
                return(null);
            }

            ParseTradeResult result = await ShouldAcceptTrade(tradeOffer).ConfigureAwait(false);

            if (result == null)
            {
                Logging.LogNullError(nameof(result), Bot.BotName);
                return(null);
            }

            switch (result.Result)
            {
            case ParseTradeResult.EResult.AcceptedWithItemLose:
            case ParseTradeResult.EResult.AcceptedWithoutItemLose:
                Logging.LogGenericInfo("Accepting trade: " + tradeOffer.TradeOfferID, Bot.BotName);
                await Bot.ArchiWebHandler.AcceptTradeOffer(tradeOffer.TradeOfferID).ConfigureAwait(false);

                break;

            case ParseTradeResult.EResult.RejectedPermanently:
            case ParseTradeResult.EResult.RejectedTemporarily:
                if (result.Result == ParseTradeResult.EResult.RejectedPermanently)
                {
                    if (Bot.BotConfig.IsBotAccount)
                    {
                        Logging.LogGenericInfo("Rejecting trade: " + tradeOffer.TradeOfferID, Bot.BotName);
                        Bot.ArchiWebHandler.DeclineTradeOffer(tradeOffer.TradeOfferID);
                        break;
                    }

                    IgnoredTrades.Add(tradeOffer.TradeOfferID);
                }

                Logging.LogGenericInfo("Ignoring trade: " + tradeOffer.TradeOfferID, Bot.BotName);
                break;
            }

            return(result);
        }