コード例 #1
0
        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());
        }