public async Task <IActionResult> UpdateTvShow(int tvShowId, [FromForm] UpdateTvShowBindingModel tvShowBindingModel)
        {
            var result = await _tvShowService.UpdateTvShow(tvShowId, tvShowBindingModel);

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

            return(Ok(result));
        }
Exemple #2
0
        public async Task <ResponseDto <BaseModelDto> > UpdateTvShow(int id, UpdateTvShowBindingModel tvShowBindingModel)
        {
            var response       = new ResponseDto <BaseModelDto>();
            var tvSeriesExists = await _tvShowRepository.ExistAsync(x => x.Id == id);

            if (!tvSeriesExists)
            {
                response.AddError(Model.TvShow, Error.tvShow_NotFound);
                return(response);
            }

            var tvSeriesFromDb = await _tvShowRepository.GetByAsync(x => x.Id == id, x => x.Categories, x => x.Seasons, x => x.TvSeriesRatings, x => x.TvSeriesUserRatings, x => x.UserFavouriteTvShows);

            if (tvSeriesFromDb.PhotoName != null)
            {
                if (File.Exists(("wwwroot\\TvShowsPictures\\" + tvSeriesFromDb.PhotoName)))
                {
                    File.Delete("wwwroot\\TvShowsPictures\\" + tvSeriesFromDb.PhotoName);
                }
            }

            if (tvSeriesFromDb.BackgroundPhotoName != null)
            {
                if (File.Exists(("wwwroot\\TvShowsPictures\\" + tvSeriesFromDb.BackgroundPhotoName)))
                {
                    File.Delete("wwwroot\\TvShowsPictures\\" + tvSeriesFromDb.BackgroundPhotoName);
                }
            }

            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);
            }

            tvSeriesFromDb.Name                = tvShowBindingModel.Name;
            tvSeriesFromDb.Description         = tvShowBindingModel.Description;
            tvSeriesFromDb.LongDescription     = tvShowBindingModel.LongDescription;
            tvSeriesFromDb.Network             = tvShowBindingModel.Network;
            tvSeriesFromDb.EmissionHour        = tvShowBindingModel.EmissionHour;
            tvSeriesFromDb.EpisodeLength       = tvShowBindingModel.EpisodeLength;
            tvSeriesFromDb.PhotoName           = fileName;
            tvSeriesFromDb.BackgroundPhotoName = backgroundFileName;

            var result = await _tvShowRepository.UpdateAsync(tvSeriesFromDb);

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

            return(response);
        }