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()); }
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()); }
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")); }
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(); }
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 })); }
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); }
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(); }