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