Ejemplo n.º 1
0
        public async Task UpdateAsync(int id, EditMovieInputModel input)
        {
            var movie = this.moviesRepository.All()
                        .FirstOrDefault(x => x.Id == id);

            movie.Name        = input.Name;
            movie.Description = input.Description;
            movie.GenreId     = input.GenreId;

            await this.moviesRepository.SaveChangesAsync();
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> Edit(int id, EditMovieInputModel input)
        {
            if (!this.ModelState.IsValid)
            {
                input.GenreItems = this.genresService.GetAllAsKeyValuePairs();
                return(this.View(input));
            }

            await this.moviesService.UpdateAsync(id, input);

            return(this.RedirectToAction("ById", new { id }));
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> Edit(int id, EditMovieInputModel input)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.View(input));
            }

            var actors    = this.Request.Form["actorName"];
            var genres    = this.Request.Form["genreName"];
            var directors = this.Request.Form["directorName"];

            input.Actors    = actors;
            input.Genres    = genres;
            input.Directors = directors;

            await this.moviesService.EditActorAsync(input);

            return(this.RedirectToAction(nameof(this.Details), new { id }));
        }
Ejemplo n.º 4
0
        public async Task EditActorAsync(EditMovieInputModel input)
        {
            var entity = this.moviesRepository.All()
                         .Where(x => x.Id == input.Id)
                         .FirstOrDefault();

            entity.Actors = this.actorsMovieRepository.All()
                            .Where(x => x.MovieId == input.Id)
                            .ToList();
            entity.Directors = this.directorMovieRepository.All()
                               .Where(x => x.MovieId == input.Id)
                               .ToList();
            entity.Genres = this.genreMoviesRepository.All()
                            .Where(x => x.MovieId == input.Id)
                            .ToList();

            ICollection <MovieActors> inputActors = new HashSet <MovieActors>();

            foreach (var actor in input.Actors)
            {
                var actorMovie = new MovieActors
                {
                    ActorId = actor,
                    MovieId = entity.Id,
                };

                if (entity.Actors.Contains(actorMovie))
                {
                    continue;
                }

                if (!input.Actors.Contains(actorMovie.ActorId))
                {
                    entity.Actors.Remove(actorMovie);
                }

                inputActors.Add(actorMovie);
            }

            ICollection <MovieGenre> inputGenres = new HashSet <MovieGenre>();

            foreach (var genre in input.Genres)
            {
                var parsedGenreId = int.Parse(genre);
                var genreMovie    = new MovieGenre
                {
                    GenreId = parsedGenreId,
                    MovieId = entity.Id,
                };

                if (entity.Genres.Contains(genreMovie))
                {
                    continue;
                }

                if (!input.Genres.Contains(genreMovie.GenreId.ToString()))
                {
                    entity.Genres.Remove(genreMovie);
                }

                inputGenres.Add(genreMovie);
            }

            ICollection <MovieDirector> inputDirectors = new HashSet <MovieDirector>();

            foreach (var director in input.Directors)
            {
                var directorMovie = new MovieDirector
                {
                    DirectorId = director,
                    MovieId    = entity.Id,
                };

                if (entity.Directors.Contains(directorMovie))
                {
                    continue;
                }

                if (!input.Directors.Contains(directorMovie.DirectorId))
                {
                    entity.Directors.Remove(directorMovie);
                }

                inputDirectors.Add(directorMovie);
            }

            entity.Actors    = inputActors;
            entity.Genres    = inputGenres;
            entity.Directors = inputDirectors;

            entity.IMDBLink    = input.IMDBLink;
            entity.Language    = input.Language;
            entity.Name        = input.Name;
            entity.PosterUrl   = input.PosterUrl;
            entity.Rating      = input.Rating;
            entity.ReleaseDate = input.ReleaseDate;
            entity.TrailerLink = input.TrailerLink;
            entity.Summary     = input.Summary;

            this.moviesRepository.Update(entity);
            await this.moviesRepository.SaveChangesAsync();
        }