private async Task AddToQueueAsync(Song song) { if (QueueSongs.Any(p => p.SongId == song.Id)) { return; } var prev = QueueSongs.LastOrDefault(); // Create the new queue entry var newQueue = new QueueSong { SongId = song.Id, PrevId = prev == null ? 0 : prev.Id, Song = song }; using (var bg = _bgFunc()) { await bg.InsertAsync(newQueue); if (prev != null) { prev.NextId = newQueue.Id; await bg.UpdateItemAsync(prev); } QueueSongsLookup.Add(newQueue.Id, newQueue); QueueSongs.Add(newQueue); } }
public bool Add(AllJoinedTable allJoinedTable) { if (!QueueSongs.Any(x => x == allJoinedTable)) { QueueSongs.Add(allJoinedTable); } else { return(false); } return(true); }
// enables/disables the control buttons based on state of the GUI.. private void lvQueues_SelectedIndexChanged(object sender, EventArgs e) { ListView lv = (ListView)sender; lbSongs.Items.Clear(); lbSongs.Items.AddRange(QueueSongs.Select(f => f.ToString(false)).Cast <object>().ToArray()); bOK.Enabled = lv.SelectedIndices.Count > 0; tsbRemove.Enabled = lv.SelectedIndices.Count > 0; tsbModifySavedQueue.Enabled = lv.SelectedIndices.Count > 0; tsbCopyAllFlat.Enabled = lv.SelectedIndices.Count > 0; tsbExportQueue.Enabled = lv.SelectedIndices.Count > 0; btAppendQueue.Enabled = lv.SelectedIndices.Count > 0; }
public void QueueSongRange(IEnumerable <AllJoinedTable> songs, int amount) { var filterCount = songs.Count() - 1; if (filterCount > 1) { _random = new Random(); for (int i = 0; i < amount; i++) { //Select random id from the fitlered count. //Only add song if not already exisiting. var id = _random.Next(filterCount); var song = songs.ElementAt(id); if (!QueueSongs.Contains(song)) { QueueSongs.Add(song); } } } }
public void Shuffle() { QueueSongs.Shuffle(); }