예제 #1
0
        public PlayNowResult PlayAlbumOrTrackNow([FromBody] PlayAlbumOrTrackRequest request)
        {
            // TODO
            int playlistId;

            if (string.IsNullOrEmpty(request.PlaylistId))
            {
                playlistId = Domain.Objects.Playlist.ALL_ID; // all
            }
            else
            {
                playlistId = int.Parse(request.PlaylistId);
            }

            using (DAL.DALManager mgr = new DAL.DALManager(settings.Value.DatabasePath))
            {
                if (playlistId != Player.Instance.CurrentPlaylist.Id)
                {
                    PlayPlaylistNow(new PlayPlaylistRequest()
                    {
                        PlaylistId = playlistId + ""
                    });
                }

                // find in the current playlist and change track

                if (request.Item.IsTrack)
                {
                    var track = mgr.Get <Domain.Objects.Track>(request.Item.Id);

                    if (track == null)
                    {
                        return new PlayNowResult()
                               {
                                   Success = false, Message = "Track not found "
                               }
                    }
                    ;

                    Player.Instance.PlayTracks(new HashSet <int>()
                    {
                        request.Item.Id
                    });
                }
                else
                {
                    var album = mgr.Get <Domain.Objects.Album>(request.Item.Id);
                    if (album == null)
                    {
                        return new PlayNowResult()
                               {
                                   Success = false, Message = "Album not found"
                               }
                    }
                    ;

                    var tracks = mgr.FindTracks(null, playlistId, album.Id, 0, int.MaxValue);

                    Player.Instance.PlayTracks(new HashSet <int>(tracks.Select(t => t.Id)));
                }
            }

            return(GetPlayerStateResultFromPlayer <PlayNowResult>());
        }
예제 #2
0
 public Result PlayAlbumOrTrackAfterCurrentTrack([FromBody] PlayAlbumOrTrackRequest request)
 {
     // TODO
     return(null);
 }