internal async void OnMixButtonCommand(object param) { if (IsMixDiscFilterValid()) { _mixDiscTracks.Clear(); var playlistTracks = new ObservableCollection <ISong>(ImportedTrackCollection.Where(t => t.Playlist == SelectedMixDiscPlaylistComboBoxItem)).ToList(); var playlistTrackCount = playlistTracks.Count(); var tasks = new List <Task>(playlistTrackCount); ResetProgressBar(); ProgressBarMax = playlistTrackCount; var minPlaytime = (Convert.ToInt32(PlaytimeTextBoxText) * 60); var mixLength = Convert.ToInt32(MixLengthTextBoxText); ProgressBarValue = MixDiscCollection.Count(); foreach (var track in playlistTracks) { var baseTrackList = MixDiscCollection.ToList(); var task = FindMixDiscTracksAsync(track, baseTrackList, playlistTracks, SelectedIntensityComboBoxItem, minPlaytime, mixLength); tasks.Add(task); } await Task.WhenAll(tasks); } }
internal void UpdateMixDiscProgressBar() { if (ProgressBarValue == ProgressBarMax) { var statusMessage = string.Empty; if (_mixDiscTracks.Count > 0) { var bestMixDisc = GetBestMixDiscTracks(); foreach (var track in bestMixDisc) { MixDiscCollection.Add(track); } statusMessage = string.Concat("A new Mix disc is found"); } else if (MixDiscCollection.Count == 0) { DisplayLongestTrackCombinationList(); statusMessage = string.Concat("No new Mix disc is found. The longest track combination is displayed"); } else { statusMessage = string.Concat("No new Mix disc is found"); } ProgressBarMessage = statusMessage; MessageBox.Show(string.Concat(statusMessage, ".")); } }
internal List <ISong> GetBestMixDiscTracks() { var baseTrackList = MixDiscCollection.ToList(); MixDiscCollection.Clear(); return(_songListModel.GetBestMixDiscTracks(baseTrackList, _mixDiscTracks, SelectedIntensityComboBoxItem, _culledMatchingTrackCombinationList)); }
private void DisplayLongestTrackCombinationList() { if (MixDiscCollection.Count == 0) { foreach (var track in _longestTrackCombinationList) { MixDiscCollection.Add(track); } } }
internal void ClearPlaylists() { FilteredTrackCollection.Clear(); ImportedTrackCollection.Clear(); PreparationCollection.Clear(); MixDiscCollection.Clear(); ClearFilter(); ClearMixDiscFilter(); _mixDiscTracks = new List <List <ISong> >(); EnableControls(); EnableMixDiscControls(); ProgressBarMessage = "Ready to import"; }