public async Task <IActionResult> Create(CreateMovieResponse movieResponseViewModel) { if (ModelState.IsValid) { Movie movie = new Movie(); var movieInDb = _context.Movie.SingleOrDefault(m => m.Name.ToLower().Trim() == movieResponseViewModel.Name.ToLower().Trim()); if (movieInDb != null) { return(RedirectToAction("Details", new { id = movieInDb.Id })); } movie.Name = movieResponseViewModel.Name; movie.GenreId = movieResponseViewModel.GenreId; movie.Description = movieResponseViewModel.Description; movie.ImgCode = movieResponseViewModel.ImgCode; movie.Year = movieResponseViewModel.Year; movie.MoviesActors = new List <MovieActor>(); var director = _context.Director.FirstOrDefault(d => d.Name == movieResponseViewModel.Director.Name); if (director == null) { movie.Director = new Director { Name = movieResponseViewModel.Director.Name }; } else { movie.Director = director; } var actors = _context.Actor.Where(a => movieResponseViewModel.Actors.Contains(a.Name)).Select(a => a.Name).ToList(); if (actors.Count > 0) { if (actors.Count > 0) { foreach (var act in movieResponseViewModel.Actors) { //if (actors.Contains()) //{ //} } } } _context.Add(movie); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View()); }