public async Task <IActionResult> AddTvShow([FromForm] AddTvShowBindingModel tvShowBindingModel)
        {
            var result = await _tvShowService.AddTvShow(tvShowBindingModel);

            if (result.ErrorOccurred)
            {
                return(BadRequest(result));
            }

            return(Ok(result));
        }
Exemple #2
0
        public async Task <ResponseDto <BaseModelDto> > AddTvShow(AddTvShowBindingModel tvShowBindingModel)
        {
            var response = new ResponseDto <BaseModelDto>();

            if (!Directory.Exists("wwwroot\\TvShowsPictures"))
            {
                Directory.CreateDirectory("wwwroot\\TvShowsPictures");
            }

            var fileName = Guid.NewGuid() + Path.GetExtension(tvShowBindingModel.Photo.FileName);
            var filePath = Path.Combine("wwwroot\\TvShowsPictures", fileName);

            var backgroundFileName = Guid.NewGuid() + Path.GetExtension(tvShowBindingModel.BackgroundPhoto.FileName);
            var backgroundFilePath = Path.Combine("wwwroot\\TvShowsPictures", backgroundFileName);

            using (var stream = new FileStream(filePath, FileMode.Create))
            {
                await tvShowBindingModel.Photo.CopyToAsync(stream);
            }

            using (var stream = new FileStream(backgroundFilePath, FileMode.Create))
            {
                await tvShowBindingModel.BackgroundPhoto.CopyToAsync(stream);
            }

            var tvShow = _mapper.Map <TvShow>(tvShowBindingModel);

            tvShow.PhotoName           = fileName;
            tvShow.BackgroundPhotoName = backgroundFileName;

            var tvShowInDatabase = await _tvShowRepository.GetByAsync(x => x.Name.ToLower() == tvShowBindingModel.Name.ToLower());

            if (tvShowInDatabase != null)
            {
                response.AddError(Model.TvShow, Error.tvShow_Exists);
                return(response);
            }

            var result = await _tvShowRepository.AddAsync(tvShow);

            if (!result)
            {
                response.AddError(Model.TvShow, Error.tvShow_Adding);
            }

            return(response);
        }