// GET: Posts/Edit/5 public async Task <IActionResult> Edit(Guid?id) { if (id == null) { return(NotFound()); } var personalPost = await _context.PersonalPost.SingleOrDefaultAsync(m => m.Id == id); if (personalPost == null) { return(NotFound()); } PersonalPostViewModel personalPostViewModel = new PersonalPostViewModel { Id = personalPost.Id, Content = personalPost.Content, InsertDate = personalPost.InsertDate, LastUpdated = personalPost.LastUpdated, UserId = personalPost.UserId }; if (personalPost.ImageUrls != null && personalPost.ImageUrls != "") { personalPostViewModel.StoredImageUrls = personalPost.ImageUrls.Split(";"); } return(View(personalPostViewModel)); }
public async Task <IActionResult> Edit(Guid id, [Bind("Id,Content,StoredImageUrls,NewImages,InsertDate,LastUpdated,UserId")] PersonalPostViewModel personalPostViewModel) { if (id != personalPostViewModel.Id) { return(NotFound()); } if (ModelState.IsValid) { try { PersonalPost personalPost = _context.PersonalPost.Where(p => p.Id == id).FirstOrDefault(); personalPost.Content = personalPostViewModel.Content; personalPost.InsertDate = personalPostViewModel.InsertDate; personalPost.LastUpdated = DateTime.Now; personalPost.UserId = personalPostViewModel.UserId; string existingImages = _context.PersonalPost.Where(p => p.Id == personalPost.Id).FirstOrDefault().ImageUrls; //delete unselected images if (existingImages != null && existingImages != "") { if (personalPostViewModel.StoredImageUrls == null) { _DeleteImages(personalPost.ImageUrls); } else { foreach (string image in personalPost.ImageUrls.Split(";")) { if (!personalPostViewModel.StoredImageUrls.Contains(image)) { _DeleteOneImage(image); } } } } //upload image new images int startNumber = 0; if (personalPost.ImageUrls != null && personalPost.ImageUrls != "") { startNumber = personalPost.ImageUrls.Split(";").Count(); } string[] newImages = _UploadImages(personalPostViewModel.NewImages, personalPost.Id.ToString(), startNumber + 1); personalPost.ImageUrls = _CreateImageUrls(personalPostViewModel.StoredImageUrls, newImages); _context.Update(personalPost); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!_PersonalPostExists(personalPostViewModel.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } return(View(personalPostViewModel)); }