/// <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; }
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!"); }