Exemplo n.º 1
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
                }
            }
        }