public void Add(ActorViewModel actorVm) { var moviesIds = actorVm.FilmographyIds; var actor = new Actor(); var movies = new List <Movie>(); actor.Update(actorVm); foreach (var movieId in moviesIds) { var movie = _repository.SearchForMovies(x => x.MovieId == movieId).First(); movies.Add(movie); } if (movies.Any()) { movies.ForEach(x => _repository.Add(new ActorMovie() { Movie = x, Actor = actor })); } else { _repository.AddActor(actor); } }
public void Update(int id, MovieViewModel movieVm) { var newActorsIds = movieVm.StarringActorsIds; var movie = _repository.SearchForMovies(x => x.MovieId == id).First(); movie.Update(movieVm); var currentActorMovies = _repository.SearchForMovies(x => x.MovieId == id).First().ActorsMovies.AsEnumerable(); var newActorMovies = newActorsIds.Select(x => new ActorMovie { ActorId = x, MovieId = id }); _repository.Update(currentActorMovies, newActorMovies); }