public int GetSongCount()
        {
            var songCount = 0;

            if (!string.IsNullOrEmpty(WorkingCollection))
            {
                _xmlWrapper.XmlPath = WorkingCollectionPath;
                _xmlWrapper.Load();

                foreach (XmlNode collectionNode in _xmlWrapper.XmlDocument.DocumentElement.SelectNodes("/NML/COLLECTION"))
                {
                    foreach (XmlNode entryNode in collectionNode.SelectNodes("ENTRY"))
                    {
                        songCount++;
                    }
                }
            }
            return(songCount);
        }
        internal async void OnImportMenuCommand(object param)
        {
            ClearPlaylists();
            _songListModel.TraktorLibrary.SetCollectionPath();

            if (_songListModel.TraktorLibrary.IsCollectionFound())
            {
                _songListModel.IsProgressBarIndeterminate = true;
                await Task.Run(() => _songListModel.TraktorLibrary.DeleteWorkingCollection());

                await Task.Run(() => _songListModel.TraktorLibrary.CreateWorkingCollection());

                await Task.Run(() => _songListModel.TraktorLibrary.LoadWorkingCollection());

                ProgressBarMax = await Task.Run(() => _songListModel.TraktorLibrary.GetSongCount());

                IsProgressBarIndeterminate = false;

                if (!string.IsNullOrEmpty(_songListModel.TraktorLibrary.WorkingCollection))
                {
                    _xmlWrapper.XmlPath = _songListModel.TraktorLibrary.WorkingCollectionPath;
                    _xmlWrapper.Load();

                    foreach (XmlNode collectionNode in _xmlWrapper.XmlDocument.DocumentElement.SelectNodes("/NML/COLLECTION"))
                    {
                        foreach (XmlNode entryNode in collectionNode.SelectNodes("ENTRY"))
                        {
                            ISong song = await Task.Run(() => GetSong(entryNode));

                            ImportedTrackCollection.Add(song);

                            if (!PlaylistComboBoxCollection.Contains(song.Playlist))
                            {
                                PlaylistComboBoxCollection.Add(song.Playlist);
                            }

                            var playlist = new Playlist {
                                Name = song.Playlist, Path = Path.GetDirectoryName(song.Path), Selected = true
                            };

                            if (PlaylistCollection.FirstOrDefault(p => p.Path == playlist.Path) == null)
                            {
                                PlaylistCollection.Add(playlist);
                            }

                            ProgressBarValue++;
                        }
                    }
                }

                PlaylistComboBoxCollection        = new ObservableCollection <string>(PlaylistComboBoxCollection.OrderBy(p => p));
                MixDiscPlaylistComboBoxCollection = new ObservableCollection <string>(PlaylistComboBoxCollection);
                PlaylistCollection = new ObservableCollection <IPlaylist>(PlaylistCollection.OrderBy(p => p.Path));
                Filter();

                if (FilteredTrackCollection.Count > 0)
                {
                    SelectedTrackCollectionItem = FilteredTrackCollection[0];
                }

                EnableControls();
                var statusMessage = string.Concat(ImportedTrackCollection.Count.ToString(), " tracks imported from Traktor collection");
                ProgressBarMessage = statusMessage;
                MessageBox.Show(string.Concat(statusMessage, "."));
            }
            else
            {
                ProgressBarMessage = "No Traktor collection found";
                MessageBox.Show("No Traktor collection found.");
            }

            ResetProgressBar(false);
        }