private void btnDeny_Click(object sender, EventArgs e)
 {
     if (!deny2)
     {
         lblStatus.Text    = "再次拒绝确认";
         btnDeny.BackColor = Color.FromArgb(255, 255, 128);
         deny2             = true;
     }
     else
     {
         lblStatus.Text = "拒绝中...";
         acc.DenyConfirmation(confirms[0]);
         confirms.RemoveAt(0);
         Reset();
     }
 }
Exemple #2
0
        private void btnDenyConfirmation_Click(object sender, EventArgs e)
        {
            if (mCurrentConfirmation == null)
            {
                return;
            }
            bool success = mCurrentAccount.DenyConfirmation(mCurrentConfirmation);

            if (success)
            {
                MessageBox.Show("Confirmation successfully denied.");
            }
            else
            {
                MessageBox.Show("Unable to deny confirmation.");
            }
            this.loadConfirmations();
        }
Exemple #3
0
        static void processConfirmations(SteamGuardAccount account)
        {
            Utils.Verbose("Refeshing Session...");
            if (account.RefreshSession())
            {
                Utils.Verbose("Session refreshed");
                Manifest.SaveAccount(account, Manifest.Encrypted);
            }
            else
            {
                Utils.Verbose("Failed to refresh session, prompting user...");
                if (!promptRefreshSession(account))
                {
                    Console.WriteLine("Failed to refresh session, aborting...");
                }
            }
            Console.WriteLine("Retrieving trade confirmations...");
            var tradesTask = account.FetchConfirmationsAsync();

            tradesTask.Wait();
            var trades       = tradesTask.Result;
            var tradeActions = new TradeAction[trades.Length];

            for (var i = 0; i < tradeActions.Length; i++)
            {
                tradeActions[i] = TradeAction.Ignore;
            }
            if (trades.Length == 0)
            {
                Console.WriteLine($"No trade confirmations for {account.AccountName}.");
                return;
            }
            var selected      = 0;
            var colorAccept   = ConsoleColor.Green;
            var colorDeny     = ConsoleColor.Red;
            var colorIgnore   = ConsoleColor.Gray;
            var colorSelected = ConsoleColor.Yellow;
            var confirm       = false;

            do
            {
                Console.Clear();
                if (selected >= trades.Length)
                {
                    selected = trades.Length - 1;
                }
                else if (selected < 0)
                {
                    selected = 0;
                }
                Console.ResetColor();
                Console.WriteLine($"Trade confirmations for {account.AccountName}...");
                Console.WriteLine("No action will be made without your confirmation.");
                Console.WriteLine("[a]ccept   [d]eny   [i]gnore  [enter] Confirm  [q]uit");                 // accept = 1, deny = 0, ignore = -1
                Console.WriteLine();

                for (var t = 0; t < trades.Length; t++)
                {
                    ConsoleColor itemColor;
                    switch (tradeActions[t])
                    {
                    case TradeAction.Accept:
                        itemColor = colorAccept;
                        break;

                    case TradeAction.Deny:
                        itemColor = colorDeny;
                        break;

                    case TradeAction.Ignore:
                        itemColor = colorIgnore;
                        break;

                    default:
                        throw new ArgumentOutOfRangeException();
                    }

                    Console.ForegroundColor = t == selected ? colorSelected : itemColor;

                    Console.WriteLine($"  [{t}] [{tradeActions[t]}] {trades[t].ConfType} {trades[t].Creator} {trades[t].Description}");
                }
                var key = Console.ReadKey();
                switch (key.Key)
                {
                case ConsoleKey.UpArrow:
                case ConsoleKey.W:
                    selected--;
                    break;

                case ConsoleKey.DownArrow:
                case ConsoleKey.S:
                    selected++;
                    break;

                case ConsoleKey.A:
                    tradeActions[selected] = TradeAction.Accept;
                    break;

                case ConsoleKey.D:
                    tradeActions[selected] = TradeAction.Deny;
                    break;

                case ConsoleKey.I:
                    tradeActions[selected] = TradeAction.Ignore;
                    break;

                case ConsoleKey.Enter:
                    confirm = true;
                    break;

                case ConsoleKey.Escape:
                case ConsoleKey.Q:
                    Console.ResetColor();
                    Console.WriteLine("Quitting...");
                    return;

                default:
                    break;
                }
            } while (!confirm);
            Console.ResetColor();
            Console.WriteLine();
            Console.WriteLine("Processing...");
            for (var t = 0; t < trades.Length; t++)
            {
                bool success = false;
                switch (tradeActions[t])
                {
                case TradeAction.Accept:
                    if (Verbose)
                    {
                        Console.Write($"Accepting {trades[t].ConfType} {trades[t].Creator} {trades[t].Description}...");
                    }
                    success = account.AcceptConfirmation(trades[t]);
                    break;

                case TradeAction.Deny:
                    if (Verbose)
                    {
                        Console.Write($"Denying {trades[t].ConfType} {trades[t].Creator} {trades[t].Description}...");
                    }
                    success = account.DenyConfirmation(trades[t]);
                    break;

                case TradeAction.Ignore:
                    if (Verbose)
                    {
                        Console.Write($"Ignoring {trades[t].ConfType} {trades[t].Creator} {trades[t].Description}...");
                    }
                    success = true;
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
                Utils.Verbose(success);
            }
            Console.WriteLine("Done.");
        }