public void InsertGenreFilm(GenreFilm genreFilm) { context.GenreFilm.Add(genreFilm); }
public void UpdateGenreFilm(GenreFilm genreFilm) { context.Entry(genreFilm).State = EntityState.Modified; }
/// <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); } }