public async Task PlayPrev()
        {
            IsPlaying = false;
            AudioPlayerEngine.Stop();
            await CurrentPlaylist.SetState(CurrentTrack, AudioPlayerState.None);

            CurrentTrack = null;
            TrackStateViewModel song = await Task.Run(() => GetPreviousSong(RepeatState, ShuffleState));

            if (song != null)
            {
                await Play(song);
            }
        }
 public async Task Play(TrackStateViewModel song)
 {
     if (CurrentTrack == null || !Equals(CurrentTrack, song))
     {
         if (CurrentPlaylist.MoveToEntry(song))
         {
             CurrentTrack = CurrentPlaylist.CurrentEntry;
             await Task.Run(() =>
             {
                 AudioPlayerEngine.Stop();
                 AudioPlayerEngine.Load(CurrentPlaylist.CurrentEntry.Track.Model);
                 AudioPlayerEngine.Play();
             });
         }
     }
     else
     {
         AudioPlayerEngine.Resume();
     }
     IsPlaying = true;
     await CurrentPlaylist.SetState(song, AudioPlayerState.Playing);
 }