Пример #1
0
        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();
        }
Пример #2
0
        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));
        }