Пример #1
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
                    }
                }
            }
        }