public async Task UpdateMovieStar(Guid movieId, Guid personId, MovieStarEditViewModel viewModel) { var movie = await _unitOfWork.Movies.GetBy(m => m.Id == movieId); if (movie == null) { throw new MovieNotFoundException(); } var isAuthorized = await _authorizationService.AuthorizeAsync( _httpContextAccessor.HttpContext.User, movie, MovieStarOperations.Edit ); if (!isAuthorized.Succeeded) { throw new AccessDeniedException(); } var movieStar = await _unitOfWork.MovieStar.GetBy( ms => ms.MovieId == movieId && ms.PersonId == personId ); _mapper.Map(viewModel, movieStar); await _unitOfWork.Save(); }
public async Task <IActionResult> Edit(Guid movieId, Guid personId, MovieStarEditViewModel viewModel) { if (ModelState.IsValid) { try { await _starService.UpdateMovieStar(movieId, personId, viewModel); _flashMessage.Confirmation("Movie character has been updated."); return(RedirectToAction("Show", "Movies", new { id = movieId })); } catch (MovieNotFoundException) { return(NotFound()); } catch (AccessDeniedException) { return(Forbid()); } } return(View(viewModel)); }