Exemplo n.º 1
0
 public void InsertGenreFilm(GenreFilm genreFilm)
 {
     context.GenreFilm.Add(genreFilm);
 }
Exemplo n.º 2
0
 public void UpdateGenreFilm(GenreFilm genreFilm)
 {
     context.Entry(genreFilm).State = EntityState.Modified;
 }
Exemplo n.º 3
0
        /// <summary>
        /// Sauvegarde un film en base
        /// </summary>
        /// <param name="film">le film à sauvegarder</param>
        /// <returns></returns>
        public async Task SaveFilm(Film film)
        {
            var isCreate = film.Id == 0;

            //si création, récup d'un nouvel ID
            if (isCreate)
            {
                film.Id = await GetNewIdFilm();
            }
            else
            {
                //si modif, on efface les tables de jointures genre/ personne du film
                await RemoveGenreFilm(film);
                await RemovePersonneFilm(film);

                //et on efface l'id de la collection éventuelle à laquelle il peut appartenir
                if (film.IdCollection > 0)
                {
                    await SupprimerFilmCollection(film.Id);
                }
            }

            //Création des genres s'ils n'existent pas, puis jointure avec le film
            foreach (var genre in film.Genres)
            {
                if (genre.Id == 0)
                {
                    var newGenre = await AddGenre(genre);

                    genre.Id = newGenre.Id;
                }

                var joinFilmGenre = new GenreFilm
                {
                    Id      = await GetNewIdGenreFilm(),
                    IdFilm  = film.Id,
                    IdGenre = genre.Id
                };
                await Bdd.AjouterDonnee(joinFilmGenre);
            }

            //Création de la liste des acteurs
            if (film.Acteurs != null && film.Acteurs.Count > 0)
            {
                foreach (var personne in film.Acteurs)
                {
                    var res = await SearchPersonne(personne.Nom);

                    if (res == null)
                    {
                        var newPersonne = await AddPersonne(personne);

                        personne.Id = newPersonne.Id;
                    }
                    else
                    {
                        personne.Id = res.Id;
                    }
                    var personneFilm = new PersonneFilm
                    {
                        Id         = await GetNewIdPersonneFilm(),
                        IdFilm     = film.Id,
                        IdPersonne = personne.Id,
                        Role       = (int)TypePersonneEnum.ACTEUR
                    };
                    await Bdd.AjouterDonnee(personneFilm);
                }
            }

            //Création de la liste des producteurs
            if (film.Producteurs != null && film.Producteurs.Count > 0)
            {
                foreach (var personne in film.Producteurs)
                {
                    var res = await SearchPersonne(personne.Nom);

                    if (res == null)
                    {
                        var newPersonne = await AddPersonne(personne);

                        personne.Id = newPersonne.Id;
                    }
                    else
                    {
                        personne.Id = res.Id;
                    }
                    var personneFilm = new PersonneFilm
                    {
                        Id         = await GetNewIdPersonneFilm(),
                        IdFilm     = film.Id,
                        IdPersonne = personne.Id,
                        Role       = (int)TypePersonneEnum.PRODUCTEUR
                    };
                    await Bdd.AjouterDonnee(personneFilm);
                }
            }

            //Création de la liste des réalisateurs
            if (film.Realisateurs != null && film.Realisateurs.Count > 0)
            {
                foreach (var personne in film.Realisateurs)
                {
                    var res = await SearchPersonne(personne.Nom);

                    if (res == null)
                    {
                        var newPersonne = await AddPersonne(personne);

                        personne.Id = newPersonne.Id;
                    }
                    else
                    {
                        personne.Id = res.Id;
                    }
                    var personneFilm = new PersonneFilm
                    {
                        Id         = await GetNewIdPersonneFilm(),
                        IdFilm     = film.Id,
                        IdPersonne = personne.Id,
                        Role       = (int)TypePersonneEnum.REALISATEUR
                    };
                    await Bdd.AjouterDonnee(personneFilm);
                }
            }

            //Création du film en base
            if (isCreate)
            {
                await Bdd.AjouterDonnee(film);
            }
            else
            {
                await Bdd.UpdateDonnee(film);
            }

            //si le film doit appartenir à une collection, lien avec cette dernière
            if (!string.IsNullOrEmpty(film.NomCollection))
            {
                await AjouterFilmCollection(film);
            }
        }