Exemplo n.º 1
0
        public async Task <ActionResult> CreateFilm(CreateFilmVM createFilmModel)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(View(createFilmModel));
                }

                if (createFilmModel.ReleaseYear < 1895 || createFilmModel.ReleaseYear > DateTime.Now.Year)
                {
                    ModelState.AddModelError(string.Empty, "Указан неверный год выпуска");
                    return(View(createFilmModel));
                }

                if (!ImageHelper.IsImage(createFilmModel.ImageFile))
                {
                    ModelState.AddModelError(string.Empty, "Неверный формат изображения ");
                    return(View(createFilmModel));
                }

                var userId = User.FindFirstValue(ClaimTypes.NameIdentifier);

                if (userId == null)
                {
                    ModelState.AddModelError(string.Empty, "Пользователь не найден");
                    return(View(createFilmModel));
                }

                var imageName = ImageHelper.UploadImage(createFilmModel.ImageFile, _webHostEnvironment);

                var filmCreateDto = new FilmForCreateDto
                {
                    Name        = createFilmModel.Name,
                    Description = createFilmModel.Description,
                    ReleaseYear = createFilmModel.ReleaseYear,
                    Director    = createFilmModel.Director,
                    ImgName     = imageName,
                    UserId      = userId
                };

                await _filmService.CreateFilmAsync(filmCreateDto);

                var alertMessage = $"Фильм \"{createFilmModel.Name}\" успешно создан!";

                return(RedirectToAction("Index", "Film", new { message = alertMessage, messageType = MessageTypeEnum.Success }));
            }
            catch (Exception ex)
            {
                return(RedirectToAction("ShowError", "Error", new { message = ex.Message }));
            }
        }
Exemplo n.º 2
0
        public async Task <int> CreateFilmAsync(FilmForCreateDto filmDto)
        {
            var film = new FilmEntity
            {
                Name            = filmDto.Name,
                Description     = filmDto.Description,
                ReleaseYear     = filmDto.ReleaseYear,
                Director        = filmDto.Director,
                ImgName         = filmDto.ImgName,
                CreatedDateTime = DateTime.Now,
                CreatedBy       = filmDto.UserId
            };

            await _repositoryManager.Films.CreateAsync(film);

            return(await _repositoryManager.SaveChanges());
        }