public CharacterViewModels(IChatManager chatManager, ICharacterManager characterManager, IApiManager apiManager, CharacterListProvider characterListProvider) { this.chatManager = chatManager; this.characterManager = characterManager; this.apiManager = apiManager; this.characterListProvider = characterListProvider; }
public CharacterListsViewModel(CharacterListProvider provider) { customLists = new ObservableList <Item>(provider.ReloadCustomLists().Select(x => new Item(x))); DefaultLists = provider.ReloadDefaultLists().Select(x => new Item(x.Value, true) { Name = this["CharacterLists_" + x.Key] }).ToList(); AllLists = new ConcatenatingObservableList <Item>(DefaultLists, customLists); SaveCommand = new MvxCommand(() => { provider.DefaultLists = DefaultLists.ToDictionary(x => x.List.Name, x => MapList(x, new CharacterList { Name = x.List.Name })); provider.SaveCustomLists(customLists.ToList().Select(x => { var oldList = x.List as CustomCharacterList; var list = MapList(x, new CustomCharacterList(oldList?.Id ?? Guid.NewGuid()) { Name = x.Name }); if (oldList != null) { list.Characters = oldList.Characters; } return(list); }).ToList()); }); AddCommand = new MvxCommand(() => customLists.Add(new Item { Name = "", SortOrder = 10, TextColor = new MvxColor(0), UnderlineColor = new MvxColor(0) })); }
public CharacterViewModel(IChatManager chatManager, ICharacterManager characterManager, IApiManager apiManager, CharacterListProvider characterListProvider) { this.characterManager = characterManager; this.apiManager = apiManager; this.characterListProvider = characterListProvider; ToggleBookmarkCommand = new MvxCommand(() => apiManager.QueryApi($"bookmark-{(Character.IsBookmarked ? "remove" : "add")}.php?name={Character.Name}")); ToggleIgnoreCommand = new MvxCommand(() => characterManager.SetIgnored(Character, !Character.IsIgnored)); ShowProfileCommand = new MvxCommand(() => Navigator.Navigate(this)); MessageCommand = new MvxCommand(() => { Navigator.Navigate <ChatViewModel, ChatViewModel.InitArgs>(new ChatViewModel.InitArgs { Character = Character.Name }); }); KickCommand = new MvxCommand(() => { chatManager.Send(Helpers.CreateClientCommand(ClientCommandType.KIK, new { character = Character.Name })); }); BanCommand = new MvxCommand(() => { chatManager.Send(Helpers.CreateClientCommand(ClientCommandType.ACB, new { character = Character.Name })); }); AddToListCommand = new MvxCommand <CustomCharacterList>(list => characterListProvider.AddCharacter(list, Character.Name)); RemoveFromListCommand = new MvxCommand <CustomCharacterList>(list => characterListProvider.RemoveCharacter(list, Character.Name)); characterListProvider.CustomListsChanged += SetCharacterLists; }
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; }
internal CharacterViewModel(IChatManager chatManager, ICharacterManager characterManager, IApiManager apiManager, CharacterListProvider provider, Character character) : this(chatManager, characterManager, apiManager, provider) { SetCharacter(character); }