/// <summary> /// Search for a specified character /// <see cref="SearchCharacters"/> /// </summary> public void SearchCharacters() { try { if (CharacterNameSearch.Length < 1 && CharacterNamesCollection.Equals(_allCharacterNamesCollection)) { return; } if (CharacterNameSearch.Length < 1) { CharacterNamesCollection.Clear(); CharacterNamesCollection.AddRange(_allCharacterNamesCollection); SelectedCharacterIndex = -1; return; } List <KeyValuePair <int, string> > validCharacters = _allCharacterNamesCollection.Where(x => x.Value.ToUpperInvariant().Contains(CharacterNameSearch.ToUpperInvariant())).ToList(); CharacterNamesCollection.Clear(); CharacterNamesCollection.AddRange(validCharacters); } catch (Exception e) { App.Logger.Warning(e, "Failed to search for selected character"); SentryHelper.SendException(e, null, SentryLevel.Warning); } }
/// <summary> /// Fill character list with characters associated with the game /// </summary> private void PopulateCharacterList() { try { CharacterNamesCollection.Clear(); var cred = CredentialManager.GetCredentials(App.CredDb); if (cred == null || cred.UserName.Length < 1) { return; } using (var db = new LiteDatabase($"{App.GetDbStringWithoutPass}'{cred.Password}'")) { var dbCharacterData = db.GetCollection <VnCharacterInfo>(DbVnCharacter.VnCharacter.ToString()).Query() .Where(x => x.VnId == VndbContentViewModel.VnId).ToArray(); List <KeyValuePair <int, string> > list = dbCharacterData.Select(x => new KeyValuePair <int, string>((int)x.CharacterId, x.Name)) .ToList(); CharacterNamesCollection.AddRange(list); _allCharacterNamesCollection = list; SelectedCharacterIndex = 0; } } catch (Exception e) { App.Logger.Error(e, "Failed to fill Vndb Character List"); SentryHelper.SendException(e, null, SentryLevel.Warning); throw; } }