private async void Remove(RingItemViewModel item)
        {
            if (item == null)
            {
                return;
            }

            if (!_dialogService.ShowQuestionDialog($"Remove {item.Name}?"))
            {
                return;
            }

            await RemoveAsync(item.Token);
        }
        public async Task InitializeAsync()
        {
            _serviceStarted = await Task.Factory.StartNew(() => _tokenService.Ping());

            if (!_serviceStarted)
            {
                _synchronizationService.RunInMainThread(() => RaisePropertyChanged(nameof(AllowAdd)));

                _dialogService.ShowErrorDialog("Service not available");

                return;
            }

            var tokens = await _tokenService.GetTokensAsync(_userCredentials.GetName());

            if (Items.Any())
            {
                _synchronizationService.RunInMainThread(() => Items.Clear());
            }

            foreach (var token in tokens)
            {
                var tokenKey          = token.Key;
                var imageData         = _tokenService.GetTokenImage(tokenKey);
                var ringItemViewModel =
                    new RingItemViewModel {
                    Name = token.Value, Token = tokenKey, Image = imageData.ImageBytes
                };
                ringItemViewModel.SetDefaultName(ringItemViewModel.Name);

                _synchronizationService.RunInMainThread(() => Items.Add(ringItemViewModel));
            }

            _synchronizationService.RunInMainThread(() =>
            {
                RaisePropertyChanged(nameof(AllowAdd));
                AddCommand.RaiseCanExecuteChanged();
            });
        }