public async Task <string> PlaySingleMedia(string accessToken, string deviceId, string mediaUri, string mediaTitle, string mediaArtworkUrl, CancellationToken ct) { var uri = new Uri($"{this.apiRoot}/players/{deviceId}/play"); var payload = new PlayableItemModel { Uri = mediaUri, Title = mediaTitle, Artwork = mediaArtworkUrl }; var statusCode = await this.restClient.Put(ct, uri, null, Headers(accessToken), payload); if (statusCode != HttpStatusCode.OK) { throw new LinnApiException(statusCode); } return(DateTime.UtcNow.ToString("o")); }
public WhePlayingSingleMediaOnASpecificDevice() { this.accessToken = Guid.NewGuid().ToString(); this.deviceId = Guid.NewGuid().ToString(); this.mediaTitle = "MY_TITLE"; this.mediaArtworkUrl = "http://localhost/media/linn.jpg"; this.mediaUrl = "http://localhost/media/linn.flac"; this.RestClient.Put( Arg.Any <CancellationToken>(), Arg.Any <Uri>(), Arg.Any <Dictionary <string, string> >(), Arg.Any <Dictionary <string, string[]> >(), Arg.Do <PlayableItemModel>(d => this.payload = d)).Returns(HttpStatusCode.OK); this.result = this.Sut.PlaySingleMedia(this.accessToken, this.deviceId, this.mediaUrl, this.mediaTitle, this.mediaArtworkUrl, CancellationToken.None).Result; }