public async Task <IActionResult> Create(int?movieId)
        {
            if (movieId == null)
            {
                return(NotFound());
            }
            var movieDetails = await _mediator.Send(new GetMovieByIdQuery(movieId.Value));

            var movieCastViewModel = new MovieActorCreateViewModel()
            {
                MovieId = movieId.Value, MovieTitle = movieDetails.Title, MovieImageUrl = movieDetails.Image.ImageUrl
            };

            return(View(movieCastViewModel));
        }
        public async Task <IActionResult> Create(int?movieId, MovieActorCreateViewModel movieCastCreateViewModel)
        {
            if (movieId == null)
            {
                return(NotFound());
            }
            if (!ModelState.IsValid)
            {
                return(View(movieCastCreateViewModel));
            }
            var castDetails = await _mediator.Send(new GetMovieActorDetailsQuery(movieId.Value, movieCastCreateViewModel.ActorId));

            if (castDetails != null)
            {
                ModelState.AddModelError("ActorId", "Actor is already present as cast.So please select other actor");
                return(View(movieCastCreateViewModel));
            }

            var movieCast = _mapper.Map <MovieActor>(movieCastCreateViewModel);
            var movie     = await _mediator.Send(new CreateMovieActorCommand(movieCast));

            return(RedirectToAction(nameof(Index), new { movieId = movieId }));
        }