public void Execute(object parameter)
            {
                // Determine the current condition
                if (parameter is string)
                {
                    Interlocked.Increment(ref m_executionCount);
                    CanExecuteChanged?.Invoke(this, new EventArgs());

                    try
                    {
                        var param = (string)parameter;
                        var entity = new CommonBannedEntity(Type, param, m_baseViewModel);
                        switch (Type)
                        {
                            case CommonItemType.Album:
                                Banlist.AlbumMetadataRetrieveBanlist.Add(param);
                                m_baseViewModel.BannedAlbums.Add(entity);
                                break;
                            case CommonItemType.Artist:
                                Banlist.ArtistMetadataRetrieveBanlist.Add(param);
                                m_baseViewModel.BannedArtists.Add(entity);
                                break;
                        }
                    }
                    finally
                    {
                        Interlocked.Decrement(ref m_executionCount);
                        CanExecuteChanged?.Invoke(this, new EventArgs());
                    }
                }
            }
 public DeleteCommand(OnlineMetadataSettingsViewModel parentViewModel, CommonBannedEntity entity)
 {
     m_parentViewModel = parentViewModel;
     m_entity = entity;
     m_executionCount = 0;
 }