Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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;
        }