/// <summary> /// Méthode de lancement de l'appel de cortana /// </summary> /// <param name="taskInstance"></param> public async void Run(IBackgroundTaskInstance taskInstance) { //lancement _serviceDeferral = taskInstance.GetDeferral(); taskInstance.Canceled += (sender, reason) => _serviceDeferral?.Complete(); var triggerDetails = taskInstance.TriggerDetails as AppServiceTriggerDetails; _voiceCommandServiceConnection = VoiceCommandServiceConnection.FromAppServiceTriggerDetails(triggerDetails); _voiceCommandServiceConnection.VoiceCommandCompleted += (sender, args) => _serviceDeferral?.Complete(); var voicecommand = await _voiceCommandServiceConnection.GetVoiceCommandAsync(); await ContexteAppli.Init(true); var filmBusiness = new FilmBusiness(); await filmBusiness.Initialization; var movieDbBusiness = new MovieDbBusiness(); var tiles = new List <VoiceCommandContentTile>(); switch (voicecommand.CommandName) { case "showVoirFilm": var listeFilmVoir = await filmBusiness.GetFilmSuggestionVoir(); tiles.AddRange(listeFilmVoir.Select(film => new VoiceCommandContentTile { ContentTileType = VoiceCommandContentTileType.TitleOnly, Title = film.Titre, AppContext = film })); break; case "showFilm": var listeFilm = await filmBusiness.GetFilmSuggestionAleatoire(); tiles.AddRange(listeFilm.Select(film => new VoiceCommandContentTile { ContentTileType = VoiceCommandContentTileType.TitleOnly, Title = film.Titre, AppContext = film })); break; case "showFilmFav": var listeFilmFav = await filmBusiness.GetFilmSuggestionFavoris(); tiles.AddRange(listeFilmFav.Select(film => new VoiceCommandContentTile { ContentTileType = VoiceCommandContentTileType.TitleOnly, Title = film.Titre, AppContext = film })); break; case "showAcheter": var listeFilmPosseder = await filmBusiness.GetFilmSuggestionPosseder(); tiles.AddRange(listeFilmPosseder.Select(film => new VoiceCommandContentTile { ContentTileType = VoiceCommandContentTileType.TitleOnly, Title = film.Titre, AppContext = film })); break; case "showFilmMoment": var listeFilmMoment = (await movieDbBusiness.GetPopularMovie()).Take(9); tiles.AddRange(listeFilmMoment.Select(film => new VoiceCommandContentTile { ContentTileType = VoiceCommandContentTileType.TitleOnly, Title = film.title, AppContext = film })); break; case "showSerieMoment": var listeserieMoment = (await movieDbBusiness.GetPopularSerie()).Take(9); tiles.AddRange(listeserieMoment.Select(film => new VoiceCommandContentTile { ContentTileType = VoiceCommandContentTileType.TitleOnly, Title = film.name, AppContext = film })); break; } var userPrompt = new VoiceCommandUserMessage(); if (tiles.Count > 0) { userPrompt.DisplayMessage = GetString("filmTrouve"); userPrompt.SpokenMessage = GetString("filmTrouve"); } else { userPrompt.DisplayMessage = GetString("aucunResultat"); userPrompt.SpokenMessage = GetString("aucunResultat"); } if (tiles.Count == 0) { var response = VoiceCommandResponse.CreateResponse(userPrompt); await _voiceCommandServiceConnection.ReportSuccessAsync(response); } else { var response = VoiceCommandResponse.CreateResponse(userPrompt, tiles); await _voiceCommandServiceConnection.ReportSuccessAsync(response); } }
public sealed override async Task InitializeAsync() { _movieDbBusiness = new MovieDbBusiness(); _filmBusiness = new FilmBusiness(); await _filmBusiness.Initialization; }