private IDacpList GetGroupedEpisodes(IEnumerable <TVShowEpisode> episodes) { ItemGroup <TVShowEpisode> currentGroup = null; DacpList <ItemGroup <TVShowEpisode> > result = new DacpList <ItemGroup <TVShowEpisode> >(true); foreach (var episode in episodes) { if (currentGroup == null || currentGroup.Key != episode.AlbumName) { currentGroup = new ItemGroup <TVShowEpisode>(episode.AlbumName); result.Add(currentGroup); } currentGroup.Add(episode); } if (result.Count == 0) { return(new DacpList <TVShowEpisode>(false)); } if (result.Count == 1 && string.IsNullOrEmpty(result[0].Key)) { return(result[0].ToDacpList()); } return(result); }
public async Task <IDacpList> GetGroupedSongsAsync() { var songs = await GetSongsAsync().ConfigureAwait(false); if (songs == null || songs.Count == 0) { return(new DacpList <Song>(false)); } ItemGroup <Song> currentGroup = null; DacpList <ItemGroup <Song> > result = new DacpList <ItemGroup <Song> >(true); MusicContainer musicContainer = Container as MusicContainer; foreach (var song in songs) { if (currentGroup == null || currentGroup.Key != song.AlbumName) { currentGroup = new ItemGroup <Song>(song.AlbumName); if (musicContainer != null && song.AlbumPersistentID != 0) { currentGroup.KeyObject = await musicContainer.GetAlbumByPersistentIDAsync(song.AlbumPersistentID).ConfigureAwait(false); } result.Add(currentGroup); } currentGroup.Add(song); } if (result.Count == 0) { return(new DacpList <Song>(false)); } if (result.Count == 1 && string.IsNullOrEmpty(result[0].Key)) { return(result[0].ToDacpList()); } return(result); }