public void UpdateMovie(MovieEditViewModel model, MoviePart part) { part.IMDB_Id = model.IMDB_Id; part.YearReleased = model.YearReleased; part.Rating = model.Rating; var oldCast = _movieActorRepository.Fetch(ma => ma.MoviePartRecord.Id == part.Id); List<int> oldActors = new List<int>(); foreach (var actor in oldCast) { oldActors.Add(actor.ActorRecord.Id); } foreach (var oldActorId in oldActors.Except(model.Actors)) { var actor = _movieActorRepository.Get(r => r.ActorRecord.Id == oldActorId); _movieActorRepository.Delete(actor); } foreach (var newActorId in model.Actors.Except(oldActors)) { var actor = _actorRepository.Get(newActorId); var moviePart = _moviePartRepository.Get(part.Id); _movieActorRepository.Create(new MovieActorRecord { ActorRecord = actor, MoviePartRecord = moviePart }); } }
public void UpdateMovie(MovieEditViewModel model, MoviePart part) { part.IMDB_Id = model.IMDB_Id; part.YearReleased = model.YearReleased; part.Rating = model.Rating; part.Tagline = model.Tagline; part.Keywords = model.Keywords; var oldCast = _movieActorRepository.Fetch(ma => ma.MoviePartRecord.Id == part.Id).Select(r => r.ActorRecord.Id).ToList(); foreach (var oldActorId in oldCast.Except(model.Actors)) { _movieActorRepository.Delete(_movieActorRepository.Get(r => r.ActorRecord.Id == oldActorId)); } foreach (var newActorId in model.Actors.Except(oldCast)) { var actor = _actorRepository.Get(newActorId); _movieActorRepository.Create(new MovieActorRecord {ActorRecord = actor, MoviePartRecord = part.Record}); } }
private void AssignActors(MoviePart movie, TmdbMovie movieInfo) { var movieActors = new List<MovieActorRecord>(); foreach (var tmdbCastMember in movieInfo.Cast.Where(c => c.Job == "Actor").OrderBy(c => c.Order).Take(5)) { var actor = _actorRepository.Fetch(a => a.Name == tmdbCastMember.Name).SingleOrDefault(); if (actor == null) { actor = new ActorRecord {Name = tmdbCastMember.Name}; _actorRepository.Create(actor); } movieActors.Add(new MovieActorRecord {ActorRecord = actor, MoviePartRecord = movie.Record}); } movieActors.ForEach(ma => _movieActorRepository.Create(ma)); }