Exemple #1
0
        private async Task <int> PlayEntity <T>(Device device, T entity)
        {
            var playlist = device.Playlist;

            playlist.Items.Clear();
            playlist.Items.Clear();
            PlaylistItem pli = null;

            switch (entity)
            {
            case MusicFile mf:
                pli = CreateNewPlaylistItem(mf);
                break;

            case Track t:
                pli = CreateNewPlaylistItem(t);
                break;

            case Work w:
                pli = CreateNewPlaylistItem(w);
                break;

            case Performance p:
                pli = CreateNewPlaylistItem(p);
                break;

            default:
                throw new Exception($"Entity type {entity.GetType().Name} is not playable");
            }
            //var pli = CreateNewPlaylistItem(entity);
            playlist.AddPlaylistItem(pli);
            await musicDb.SaveChangesAsync();

            await musicDb.FillPlaylistItemForRuntime(pli);

            await playManager.ClearPlaylist(device.KeyName);

            await playManager.AddPlaylistItem(device.KeyName, pli);

            return(await playManager.PlayNext(device.KeyName));
        }