Пример #1
0
        private async Task <List <Personne> > GetPersonnesMovie(CreditJson credit, TypePersonneEnum typePersonne)
        {
            var filmBusiness = new FilmBusiness();
            await filmBusiness.Initialization;

            var retour = new List <Personne>();

            switch (typePersonne)
            {
            case TypePersonneEnum.PRODUCTEUR:
                if (credit.crew != null)
                {
                    var found = credit.crew.Where(x => x.job.ToLower().Contains("producer")).Take(5).ToList();
                    foreach (var crewJson in found)
                    {
                        var personne = await filmBusiness.GetPersonneFromBase(crewJson.name);

                        personne.Role = TypePersonneEnum.PRODUCTEUR;
                        retour.Add(personne);
                    }
                }
                break;

            case TypePersonneEnum.REALISATEUR:
                if (credit.crew != null)
                {
                    var foundB = credit.crew.Where(x => x.job.ToLower() == "director").ToList();
                    foreach (var crewJson in foundB)
                    {
                        var personne = await filmBusiness.GetPersonneFromBase(crewJson.name);

                        personne.Role = TypePersonneEnum.REALISATEUR;
                        retour.Add(personne);
                    }
                }
                break;

            case TypePersonneEnum.ACTEUR:
                if (credit.cast != null)
                {
                    var foundC = credit.cast.OrderBy(x => x.order).Take(5).ToList();
                    foreach (var castJson in foundC)
                    {
                        var personne = await filmBusiness.GetPersonneFromBase(castJson.name);

                        personne.Role     = TypePersonneEnum.ACTEUR;
                        personne.NomScene = castJson.character;
                        retour.Add(personne);
                    }
                }

                break;
            }
            return(retour);
        }
Пример #2
0
        /// <summary>
        /// Ajoute les id de collections à tout les films
        /// </summary>
        /// <returns></returns>
        private async Task UpdateFilmForCollection()
        {
            var movieDbBusiness = new MovieDbBusiness();
            var filmBusiness    = new FilmBusiness();
            await filmBusiness.Initialization;

            var listeFilm = await Bdd.Connection.Table <Film>().Where(x => x.IdInternet > 0 && x.Type == (int)TypeFilmEnum.FILM).ToListAsync();

            foreach (var film in listeFilm)
            {
                try
                {
                    //récupère les infos d'internet
                    var tuple = await movieDbBusiness.GetIdCollectionInternet(film.IdInternet);

                    Task.Delay(250).Wait();//délai d'attente pour éviter de dépasser les 40 requetes par 10 secondes
                    var idCollectionInternet = tuple.Item2;
                    var nomCollection        = tuple.Item1;

                    //si il y a bien une collection pour ce film, on ajoute le film à la collection
                    if (idCollectionInternet > 0)
                    {
                        film.IdCollectionInternet = idCollectionInternet;
                        film.NomCollection        = nomCollection;


                        //ajout de l'id de la collection local
                        var idCollection = await filmBusiness.GetIdCollectionFromIdInternet(idCollectionInternet);

                        //si la collection n'existait pas on la créer
                        if (idCollection == -1)
                        {
                            film.OrdreCollection = 1;
                            await filmBusiness.AjouterFilmCollection(film);
                        }
                        else //si elle existe on récupère l'id et met à jour les ordres
                        {
                            film.IdCollection = idCollection;
                            var ordre = await filmBusiness.GetNumeroSuivantCollectionInternet(idCollectionInternet, film.Annee ?? -1, film.IdInternet);

                            film.OrdreCollection = ordre;
                            await Bdd.UpdateDonnee(film);

                            await filmBusiness.ReorganizeOrdreCollection(idCollection);
                        }
                    }
                }
                catch (Exception)
                {
                    // ignored
                }
            }
        }
Пример #3
0
        /// <summary>
        /// Obtiens les genres du film en recherchant ceux déjà présent en base
        /// </summary>
        /// <param name="liste">la liste des genres à convertir</param>
        /// <returns>les genres en objet</returns>
        private async Task <List <Genre> > GetGenreMovie(IEnumerable <GenreJson> liste)
        {
            var filmBusiness = new FilmBusiness();
            await filmBusiness.Initialization;

            var retour = new List <Genre>();

            foreach (var genreJson in liste)
            {
                retour.Add(await filmBusiness.GetGenreFromBase(genreJson.name));
            }
            return(retour);
        }