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); }
/// <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 } } }
/// <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); }