Exemplo n.º 1
0
        public async Task <IActionResult> Edit(ActorEditModel actorEditModel)
        {
            if (ModelState.IsValid)
            {
                Actor foundActor = await _actors.GetById(actorEditModel.Id);

                if (foundActor != null)
                {
                    foundActor.Name = actorEditModel.Name;

                    foreach (AssignedMovies assignedMovie in actorEditModel.AssignedMovies)
                    {
                        if (assignedMovie.Assigned)
                        {
                            _actors.AddMovie(foundActor, assignedMovie.Id);
                        }

                        else if (foundActor.FilmCasts.Select(filmCast => filmCast.MovieId).ToList().Contains(assignedMovie.Id))
                        {
                            _actors.RemoveMovie(foundActor, assignedMovie.Id);
                        }
                    }
                    _actors.Save();
                    ModelState.Clear();
                    return(RedirectToAction($"Detail/{foundActor.Id}"));
                }
            }
            return(NotFound());
        }
Exemplo n.º 2
0
        public async Task <IActionResult> Edit(int id, string movieTitle = "")
        {
            //Avoid Null Exception when no search filter passed.
            if (movieTitle == null)
            {
                movieTitle = "";
            }

            Actor foundActor = await _actors.GetById(id);

            if (foundActor != null)
            {
                ActorEditModel viewModel = new ActorEditModel();
                viewModel.Name = foundActor.Name;
                viewModel.Id   = foundActor.Id;

                ICollection <Movie> linkedMovies = foundActor.FilmCasts.Select(filmCast => filmCast.Movie).ToList();
                ICollection <Movie> allMovies    = await _movies.GetAllLight();

                List <AssignedMovies> assignedMovies = allMovies.OrderBy(movie => movie.Title).Where(movie => movie.Title.Contains(movieTitle))
                                                       .Select(movie => new AssignedMovies
                {
                    Id       = movie.Id,
                    Title    = movie.Title,
                    Assigned = linkedMovies.Contains(movie)
                }).ToList();


                viewModel.AssignedMovies = assignedMovies;

                return(View(viewModel));
            }
            return(NotFound());
        }
Exemplo n.º 3
0
        public async Task <IActionResult> Delete(ActorEditModel input)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.View(input));
            }

            await this.actorsService.Delete(input);

            return(this.Redirect($"/Actors/ActorsIndex"));
        }
Exemplo n.º 4
0
        public async Task Delete(ActorEditModel input)
        {
            var actor = this.actorsRepository
                        .All()
                        .FirstOrDefault(x => x.Id == input.Id);

            actor.IsDeleted = true;
            actor.DeletedOn = DateTime.UtcNow;
            this.actorsRepository.Update(actor);
            await this.actorsRepository.SaveChangesAsync();
        }
Exemplo n.º 5
0
        public async Task <IActionResult> Edit(ActorEditModel input)
        {
            if (input == null)
            {
                return(this.NotFound());
            }

            if (!this.ModelState.IsValid)
            {
                return(this.View(input));
            }

            await this.actorsService.Edit(input);

            return(this.RedirectToAction(nameof(this.ActorView), new { name = input.FirstName }));
        }
Exemplo n.º 6
0
        public async Task Edit_WithValidInput_ShouldReturnValidResult()
        {
            var dbContext = ApplicationDbContextCreatorInMemory.InitializeContext();

            await this.SeedData(dbContext);

            var actorsRepository = new EfDeletableEntityRepository <Actor>(dbContext);
            var service          = new ActorsService(actorsRepository);

            var viewModel = new ActorEditModel()
            {
                Id        = 1,
                FirstName = "Edited",
            };

            var result = service.Edit(viewModel);

            Assert.Equal("Edited", viewModel.FirstName);
        }
Exemplo n.º 7
0
        public async Task Edit(ActorEditModel input)
        {
            var actor = this.actorsRepository
                        .All()
                        .FirstOrDefault(x => x.Id == input.Id);

            actor.FirstName    = input.FirstName;
            actor.LastName     = input.LastName;
            actor.ImageUrl     = input.ImageUrl;
            actor.Biography    = input.Biography;
            actor.HomePageLink = input.HomePageLink;
            actor.IMDBLink     = input.IMDBLink;
            actor.FacebookLink = input.FacebookLink;
            actor.Birthdate    = input.Birthdate;
            actor.Birthplace   = input.Birthplace;
            actor.Gender       = input.Gender;

            this.actorsRepository.Update(actor);
            await this.actorsRepository.SaveChangesAsync();
        }