public async Task <IActionResult> Update([Required] UpdateFilmViewModel viewModel)
        {
            if (viewModel.PosterFile != null && !CheckContentType(viewModel.PosterFile.ContentType))
            {
                return(BadRequest());
            }

            var user = await _userManager.GetUserAsync(User);

            var film = await _filmRepository.GetById(viewModel.Film.Id);

            if (film == null)
            {
                return(NotFound());
            }

            if (user == null || user.Id != film.UserId)
            {
                return(Forbid());
            }

            film.Name        = viewModel.Film.Name;
            film.Description = viewModel.Film.Description;
            film.Director    = viewModel.Film.Director;
            film.ReleaseYear = viewModel.Film.ReleaseYear;

            await _filmRepository.Update(film, viewModel.PosterFile);

            return(RedirectToAction("Index", "Film", new { pageNum = 1, pageSize = 10 }));
        }
        public async Task <IActionResult> Create([Required] UpdateFilmViewModel viewModel)
        {
            if (viewModel.PosterFile == null)
            {
                return(BadRequest());
            }

            if (!CheckContentType(viewModel.PosterFile.ContentType))
            {
                return(BadRequest());
            }

            var user = await _userManager.GetUserAsync(User);

            if (user == null)
            {
                return(Forbid());
            }

            var entity = new Film()
            {
                Name        = viewModel.Film.Name,
                Description = viewModel.Film.Description,
                Director    = viewModel.Film.Director,
                ReleaseYear = viewModel.Film.ReleaseYear,
                UserId      = user.Id
            };

            await _filmRepository.Create(entity, viewModel.PosterFile);

            return(RedirectToAction("Index", "Film", new { pageNum = 1, pageSize = PageSize }));
        }