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