/// <summary> /// Lance une recherche en base avec des critères spécifiques /// </summary> /// <param name="filterA">le prmeier des deux filtres</param> /// <param name="filterB">le deuxième filtre</param> /// <param name="genreSearch">si recherche par genre, le genre</param> /// <param name="personneSearch">si rechercher par perosnne, la personne recherchée</param> /// <returns></returns> private async Task <List <Film> > SearchGeneral(FilterBibliothequeEnum filterA, FilterBibliothequeEnum filterB, Genre genreSearch, Personne personneSearch) { //si aucun filtre on récupère toute la bibliothèque if (filterA == FilterBibliothequeEnum.NONE && filterB == FilterBibliothequeEnum.NONE) { return(await _filmBusiness.GetBibliotheque()); } //si c'est un filtre de personne ou de genre else if (filterA == FilterBibliothequeEnum.GENRE && genreSearch != null) { return(await _filmBusiness.GetFilm(genreSearch)); } else if (filterA == FilterBibliothequeEnum.PERSONNE && personneSearch != null) { return(await _filmBusiness.GetFilm(personneSearch)); } //si c'est n'importe quel autre filtre else { return(await _filmBusiness.GetFilm(filterA, filterB)); } }
/// <summary> /// Charge un film complètement pour l'afficher /// </summary> /// <param name="film">le film à charger</param> public async Task ChargerFilm(Film film) { FilmAffiche = await _filmBusiness.GetFilm(film.Id); if (FilmAffiche.IdCollection > 0) { var collec = await _filmBusiness.GetCollection(FilmAffiche.IdCollection); //si il y a une collection, ajout des données locales if (collec != null) { TitreCollection = collec.NomCollection; FilmCollection = new ObservableCollection <Film>(collec.FilmCollection); foreach (var film1 in FilmCollection) { film1.Opacity = opacityPossess; } FilmCollectionVisible = true; //puis s'il y a des données d'internet, ajout des films provenant d'internet try { if (collec.IdCollectionInternet > 0) { //récupération des films d'internet var collecInternet = new ObservableCollection <Film>(await _movieDbBusiness.GetCollectionMovie(collec.IdCollectionInternet)); //ajout des films à la collection déjà faite var listeIdInternet = FilmCollection.Select(x => x.IdInternet).ToList(); foreach (var film1 in collecInternet.Where(film1 => !listeIdInternet.Contains(film1.IdInternet))) { film1.Opacity = opacityNoPossess; FilmCollection.Add(film1); } //tri des films FilmCollection = new ObservableCollection <Film>(FilmCollection.OrderBy(x => x.Annee).ThenBy(x => x.IdInternet)); } } catch (Exception) { //Ignored } } } }
/// <summary> /// Charge les informations d'un film /// </summary> /// <param name="film">le film à charger</param> /// <returns></returns> public async Task ChargerFilm(Film film) { Film = await _filmBusiness.GetFilm(film.Id); if (film.Affiche != null || (film.AfficheImage?.UriSource != null && !film.AfficheImage.UriSource.Equals(ContexteStatic.UriAfficheDefaut))) { Affiche = Film.AfficheImage; } ListeGenreSelected = new List <Genre>(Film.Genres); SelectedActeurListe = new List <Personne>(Film.Acteurs); SelectedProducteursListe = new List <Personne>(Film.Producteurs); SelectedRealisateursListe = new List <Personne>(Film.Realisateurs); if (Film.IdCollection > 0) { SelectedCollection = ListeCollection.First(x => x.Id == Film.IdCollection); if (SelectedCollection != null) { TitreCollection = SelectedCollection.NomCollection; } } }