예제 #1
0
        /// <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));
            }
        }
예제 #2
0
        /// <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
                    }
                }
            }
        }
예제 #3
0
        /// <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;
                }
            }
        }