private async Task <bool> IsDeviceActive( ITurnContext turnContext, string token, string commandQuery, CancellationToken cancellationToken, Playlist playlist = null) { var devices = await _spotifyService.GetDevices(token); if (devices.Any(d => d.IsActive)) { return(true); } // No active devices var heroCard = new HeroCard { Buttons = new List <CardAction>() }; if (playlist != null) { heroCard.Buttons.Add( new CardAction { Title = "Open Spotify", Value = playlist.Uri, Type = ActionTypes.OpenUrl, }); heroCard.Buttons.Add( new CardAction { Title = "Open Spotify Web Player", Value = playlist.ExternalUrls.Spotify, Type = ActionTypes.OpenUrl, }); } heroCard.Buttons.Add( new CardAction { Title = "Spotify is playing! Try Again", Type = ActionTypes.ImBack, Value = commandQuery }); var message = MessageFactory.Attachment( new Attachment { ContentType = HeroCard.ContentType, Content = heroCard }, text: "To play or join with Ringo your Spotify app needs to be active or playing. Open Spotify and press play, then try again."); await turnContext.SendActivityAsync(message, cancellationToken : cancellationToken); return(false); }