private async void wConfigToolStripMenuItem_Click(object sender, EventArgs e) { ToolStripMenuItem tSMI = sender as ToolStripMenuItem; bool useConfig = false; if (tSMI == null || !Boolean.TryParse(tSMI.Tag.ToString(), out useConfig)) { return; } try { List <string> accounts = ImportAccounts(); string configFile = String.Empty; if (useConfig) { configFile = ImportConfig(); } HashSet <Manager> tempManagers = new HashSet <Manager>(_managers); if (useConfig && String.IsNullOrEmpty(configFile)) { return; } int totalSuccess = 0; int total = accounts.Count; foreach (string account in accounts) { string[] parts = account.Split(':'); /* * User:Pass = 2 * User:Pass:MaxLevel = 3 * User:Pass:IP:Port = 4 * User:Pass:IP:Port:MaxLevel = 5 * User:Pass:IP:Port:pUsername:pPassword = 6 * User:Pass:IP:Port:pUsername:pPassword:MaxLevel = 7 */ if (parts.Length < 2 || parts.Length > 7) { continue; } AccountImport importModel = new AccountImport(); if (!importModel.ParseAccount(account)) { continue; } Manager manager = new Manager(); if (useConfig) { MethodResult result = await manager.ImportConfigFromFile(configFile); if (!result.Success) { MessageBox.Show("Failed to import configuration file"); return; } } manager.UserSettings.AccountName = importModel.Username; manager.UserSettings.PtcUsername = importModel.Username; manager.UserSettings.PtcPassword = importModel.Password; manager.UserSettings.ProxyIP = importModel.Address; manager.UserSettings.ProxyPort = importModel.Port; manager.UserSettings.ProxyUsername = importModel.ProxyUsername; manager.UserSettings.ProxyPassword = importModel.ProxyPassword; manager.UserSettings.MaxLevel = importModel.MaxLevel; if (tempManagers.Add(manager)) { AddManager(manager); ++totalSuccess; } } fastObjectListViewMain.SetObjects(_managers); MessageBox.Show(String.Format("Successfully imported {0} out of {1} accounts", totalSuccess, total)); } catch (Exception ex) { MessageBox.Show(String.Format("Failed to import usernames. Ex: {0}", ex.Message)); } }