public async Task <IActionResult> Edit(int id, News news, IFormFile newsimage, List <IFormFile> newsgallery, string tags) { if (id != news.NewsId) { return(NotFound()); } if (ModelState.IsValid) { try { var uploads = Path.Combine(_env.WebRootPath, "Upload\\NewsImages"); news.UserId = 1010; //news.UserId = (await _userService.GetUserByIdentity(User.Identity.Name)).UserId; //----------------------Edit News Image ----------------------- if (newsimage != null) { if (news.NewsImage != "no-photo.jpg") { if (System.IO.File.Exists(Path.Combine(uploads, news.NewsImage))) { System.IO.File.Delete(Path.Combine(uploads, news.NewsImage)); } if (System.IO.File.Exists(Path.Combine(uploads, "thumbnail", news.NewsImage))) { System.IO.File.Delete(Path.Combine(uploads, "thumbnail", news.NewsImage)); } } news.NewsImage = Guid.NewGuid().ToString().Replace("-", "") + Path.GetExtension(newsimage.FileName); using (var fileStream = new FileStream(Path.Combine(uploads, news.NewsImage), FileMode.Create)) { await newsimage.CopyToAsync(fileStream); } //---------------------resize Images ---------------------- InsertShowImage.ImageResizer img = new InsertShowImage.ImageResizer(128); img.Resize(Path.Combine(uploads, news.NewsImage), Path.Combine(uploads, "thumbnail", news.NewsImage)); } //------------Edit Gallery Product -------------- List <NewsGallery> newsGalleries = new List <NewsGallery>(); foreach (var file in newsgallery) { string galleryname = Guid.NewGuid().ToString().Replace("-", "") + Path.GetExtension(file.FileName); using (var fileStream = new FileStream(Path.Combine(uploads, galleryname), FileMode.Create)) { await file.CopyToAsync(fileStream); } newsGalleries.Add(new NewsGallery() { NewsId = news.NewsId, ImageName = galleryname }); //---------------------resize Images ---------------------- InsertShowImage.ImageResizer img = new InsertShowImage.ImageResizer(350); img.Resize(Path.Combine(uploads, galleryname), Path.Combine(uploads, "thumbnail", galleryname)); } await _newsGalleryService.Add(newsGalleries); //------------Edit TAgs ------------------ await _newsTagService.RemoveByNewsId(news.NewsId); if (!string.IsNullOrEmpty(tags)) { List <NewsTag> newsTags = new List <NewsTag>(); foreach (string tag in tags.Split('-')) { newsTags.Add(new NewsTag() { NewsId = news.NewsId, TagsTitle = tag.Trim() }); } await _newsTagService.Add(newsTags); } await _newsService.Edit(news); } catch (DbUpdateConcurrencyException) { if (!await _newsService.NewsExistence(news.NewsId)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } return(View(news)); }