/// <summary> /// Get all server/accounts that are checked to be launched /// AND that are not already running /// </summary> /// <param name="accountList"></param> /// <returns></returns> private LaunchSorter.LaunchList GetLaunchListFromAccountList(IEnumerable <UserAccount> accountList) { var launchList = new LaunchSorter.LaunchList(); foreach (var account in accountList) { if (account.AccountLaunchable) { foreach (var server in account.Servers) { if (server.ServerSelected) { var state = _gameSessionMap.GetGameSessionStateByServerAccount(serverName: server.ServerName, accountName: account.Name); if (state != ServerAccountStatusEnum.None) { continue; } var launchItem = new LaunchItem() { Alias = account.Alias, AccountName = account.Name, Priority = account.Priority, Password = account.Password, ServerName = server.ServerName, IpAndPort = server.ServerIpAndPort, GameApiUrl = server.GameApiUrl, LoginServerUrl = server.LoginServerUrl, DiscordUrl = server.DiscordUrl, EMU = server.EMU, CharacterSelected = server.ChosenCharacter, CustomLaunchPath = account.CustomLaunchPath, CustomPreferencePath = account.CustomPreferencePath, RodatSetting = server.RodatSetting, SecureSetting = server.SecureSetting }; launchList.Add(launchItem); } } } } return(launchList); }
public void ApplyCurrentProfileToModel() { foreach (var account in KnownUserAccounts) { account.AccountLaunchable = CurrentProfile.RetrieveAccountState(account.AccountName);; foreach (var server in account.Servers) { var charSetting = CurrentProfile.RetrieveCharacterSetting(accountName: account.AccountName, serverName: server.ServerName); if (charSetting != null) { var state = _gameSessionMap.GetGameSessionStateByServerAccount(server.ServerName, account.AccountName); string statusSymbol = GetStatusSymbol(state); server.SetAccountServerStatus(state, statusSymbol); server.ServerSelected = charSetting.Active; server.ChosenCharacter = charSetting.ChosenCharacter; if (string.IsNullOrEmpty(server.ChosenCharacter)) { server.ChosenCharacter = "None"; } } } } OnPropertyChanged("KnownUserAccounts"); }