/// <summary>
 /// ProgressListener constructor
 /// </summary>
 /// <param name="sc">References an AionArmorySkillClient</param>
 public ProgressListener(ref AionArmorySkillClient sc)
 {
     skillClient           = sc;
     skillClient.Progress += new EventHandler(DrawProgress);
     progressBarSize       = 30;
     progressChar          = '+';
     incompleteChar        = '-';
     showProgressBar       = false;
 }
 /// <summary>
 /// Removes the event handler from the Progress event
 /// </summary>
 public void Remove()
 {
     skillClient.Progress -= new EventHandler(DrawProgress);
     skillClient           = null;
 }
Пример #3
0
        public static void Main()
        {
            string inputString;
            bool   skillsAtLevel   = false;
            bool   doAnotherSearch = false;

            Console.ForegroundColor = ConsoleColor.DarkCyan;

            Console.WriteLine("\n-++- Aion Armory Skill Search Client " +
                              "-++-\n");
            do
            {
                AionArmorySkillClient skillClient = new AionArmorySkillClient();
                ProgressListener      listener    = new ProgressListener(ref skillClient);

                skillClient.GetSearchInfo();
                Console.WriteLine("\nRetrieving skills info from Aion Armory...\n");
                listener.showProgressBar = true;
                skillClient.EstablishArmoryConnection();
                skillClient.ExtractSkillData();
                if (skillClient.PrintSkillNames())
                {
                    skillsAtLevel = true;
                }
                else
                {
                    skillsAtLevel = false;
                }
                listener.showProgressBar = false;

                if (skillsAtLevel)
                {
                    // Retrieve skill descriptions now in separate thread to
                    //  expedite displaying if the user chooses to see them
                    ThreadStart descRetrievalRef =
                        new ThreadStart(skillClient.RetrieveSkillDescriptions);
                    Thread descRetrievalThread = new Thread(descRetrievalRef);
                    descRetrievalThread.Start();

                    Console.Write("See skill descriptions? Enter Y/N: ");
                    inputString = Console.ReadLine();
                    inputString = inputString.ToLower();
                    while (inputString != "y" && inputString != "n" &&
                           inputString != "yes" && inputString != "no")
                    {
                        Console.Write("Invalid choice. Enter Y or N: ");
                        inputString = Console.ReadLine();
                        inputString = inputString.ToLower();
                    }

                    if (inputString == "y" || inputString == "yes")
                    {
                        Console.WriteLine("\nRetrieving skill descriptions from " +
                                          "Aion Armory...\n");
                        listener.showProgressBar = true;

                        while (descRetrievalThread.IsAlive)
                        {
                            // Wait for retrieval thread to finish
                        }
                        skillClient.PrintSkillDescriptions();
                    }
                }

                Console.Write("Perform a new search? Enter Y/N: ");
                inputString = Console.ReadLine();
                inputString = inputString.ToLower();

                while (inputString != "y" && inputString != "n" &&
                       inputString != "yes" && inputString != "no")
                {
                    Console.Write("Invalid choice. Enter Y or N: ");
                    inputString = Console.ReadLine();
                    inputString = inputString.ToLower();
                }

                if (inputString == "y" || inputString == "yes")
                {
                    Console.WriteLine();
                    doAnotherSearch = true;
                }
                else
                {
                    doAnotherSearch = false;
                }

                listener.Remove();
            } while (doAnotherSearch);

            Console.WriteLine("\nThank you for using the Aion Armory " +
                              "Skill Search Client!");
        }