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