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; }