public void Play(Mix mix) { if (playToken.Length == 0) { playToken = GetPlayToken(); } if (mix.Tracks.Count == 0) { PlayMixRequest playMixRequest = requestFactory.CreatePlayMixRequest(playToken, mix.MixId); PlaySongResponse playSongReponse = requestExecutor.ExecutePlayMixRequest(playMixRequest); Track openingTrack = new Track(playSongReponse.SetElement.TrackElement, playSongReponse.SetElement.AtLastTrack, playSongReponse.SetElement.SkipAllowed); if (String.IsNullOrEmpty(openingTrack.Uri)) { return; } mix.AddTrack(openingTrack); } // in case we want to play the same mix again, // it means we don't change anything in the UI // just reset the counter and start again if (currentMix == null || !mix.RestfulUri.Equals(currentMix.RestfulUri)) { currentMix = mix; currentMixObservable.OnNext(currentMix); } currentMix.ResetTrackIndex(); PlayCurrentTrack(currentMix); }
public PlaySongResponse ExecutePlayMixRequest(PlayMixRequest playMixRequest) { return((PlaySongResponse)(Execute(playMixRequest) ?? Activator.CreateInstance(typeof(PlaySongResponse)))); }