List <AudioCard> GetAudioCardsForPreviews(string genre) { var grooveSvc = new GrooveService(); List <Item> tracks = grooveSvc.GetTracks(genre); var cards = (from track in tracks let artists = string.Join(", ", from artist in track.Artists select artist.Artist.Name) let preview = grooveSvc.GetPreview(track.Id) select new AudioCard { Title = track.Name, Subtitle = artists, Media = new List <MediaUrl> { new MediaUrl(preview.Url) } }) .ToList(); return(cards); }
List <HeroCard> GetHeroCardsForTracks(string genre) { List <Item> tracks = new GrooveService().GetTracks(genre); var cards = (from track in tracks let artists = string.Join(", ", from artist in track.Artists select artist.Artist.Name) select new HeroCard { Title = track.Name, Subtitle = artists, Images = new List <CardImage> { new CardImage { Alt = track.Name, Tap = BuildBuyCardAction(track), Url = track.ImageUrl } }, Buttons = new List <CardAction> { BuildBuyCardAction(track) } }) .ToList(); return(cards); }
Task MessageReceivedAsync(IDialogContext context, IAwaitable <object> result) { List <string> genres = new GrooveService().GetGenres(); genres.Add("Done"); PromptDialog.Choice(context, ResumeAfterGenreAsync, genres, "Which music category?"); return(Task.CompletedTask); }
async Task PerformSearchAsync(IDialogContext context, IAwaitable <IMessageActivity> result) { IMessageActivity activity = await result; string values = activity.Value?.ToString(); var searchArgs = JsonConvert.DeserializeObject <SearchArguments>(values); var results = new GrooveService().Search(searchArgs); context.Done(this); }
async Task <List <HeroCard> > GetHeroCardsForTracksAsync(string genre) { List <Item> tracks = new GrooveService().GetTracks(genre); var cogSvc = new CognitiveService(); foreach (var track in tracks) { track.ImageAnalysis = await cogSvc.AnalyzeImageAsync(track.ImageUrl); } var cards = (from track in tracks let artists = string.Join(", ", from artist in track.Artists select artist.Artist.Name) select new HeroCard { Title = track.Name, Subtitle = artists, Text = track.ImageAnalysis.Description?.Captions?.First()?.Text ?? "No Description", Images = new List <CardImage> { new CardImage { Alt = track.Name, Tap = BuildBuyCardAction(track), Url = track.ImageUrl } }, Buttons = new List <CardAction> { BuildBuyCardAction(track), BuildNewsCardAction(track) } }) .ToList(); return(cards); }
async Task MessageReceivedAsync(IDialogContext context, IAwaitable <object> result) { var activity = await result as IMessageActivity; string heroCardValue = activity?.Text; if (!string.IsNullOrWhiteSpace(heroCardValue) && heroCardValue.StartsWith("{")) { var news = JsonConvert.DeserializeObject <Item>(heroCardValue); string artistName = news.Artists.First().Artist.Name; await context.Forward( new NewsDialog(artistName), MessageReceivedAsync, activity); } else { List <string> genres = new GrooveService().GetGenres(); genres.Add("Done"); PromptDialog.Choice(context, ResumeAfterGenreAsync, genres, "Which music category?"); } }
Task MessageReceivedAsync(IDialogContext context, IAwaitable <object> result) { List <string> genres = new GrooveService().GetGenres(); genres.Add("Done"); string promptMessage = "Which music category?"; string retryMessage = "I don't know about that category, please select an item in the list."; var promptOptions = new PromptOptions <string>( prompt: promptMessage, retry: retryMessage, options: genres, speak: promptMessage, retrySpeak: retryMessage); PromptDialog.Choice( context: context, resume: ResumeAfterGenreAsync, promptOptions: promptOptions); return(Task.CompletedTask); }