public RecentConversationsViewModel(IChannelManager channelManager, CharacterViewModels cache) { var settings = CharacterSettings.Instance; RecentChannels = settings.RecentChannels; settings.RecentChannelsChanged += () => RecentChannels = settings.RecentChannels; RecentCharacters = settings.RecentCharacters.Select(cache.GetCharacterViewModel).ToList(); settings.RecentCharactersChanged += () => RecentCharacters = settings.RecentCharacters.Select(cache.GetCharacterViewModel).ToList(); JoinChannelCommand = new MvxCommand <string>(channelManager.JoinChannel); }
public ListsViewModel(ICharacterManager characterManager, CharacterViewModels cache, CharacterListProvider characterListProvider) { var lists = new ObservableList <List>(); IObservableList <CharacterViewModel> Mapper(IObservableList <Character> l) => new MappingObservableList <Character, CharacterViewModel>(l, cache.GetCharacterViewModel); lists.Add(new List(Strings.CharacterLists_Bookmarks, Mapper(new FilteringObservableList <Character, bool>(characterManager.OnlineCharacters, x => x.IsBookmarked, x => x)))); lists.Add(new List(Strings.CharacterLists_Friends, Mapper(new FilteringObservableList <Character, bool>(characterManager.OnlineCharacters, x => x.IsFriend, x => x)))); lists.Add(new List(Strings.CharacterLists_ChatOps, Mapper(new FilteringObservableList <Character, bool>(characterManager.OnlineCharacters, x => x.IsChatOp, x => x)))); lists.InsertRange(characterListProvider.CustomLists.Select(l => new List(l.Name, Mapper(new FilteringObservableList <Character>(characterManager.OnlineCharacters, x => l.Characters.Contains(x.Name))))), lists.Count); Lists = lists; }