public ActionResult Edit(int cId, Contents content, ContentInfo contentInfo, HttpPostedFileBase uploadfile, List <int> ids) { try { if (!ModelState.IsValid) { var model = new ContentsVM { Content = new Contents(), ContentInfo = new ContentInfo() }; model.Content.Active = true; model.Content.Sort = 1; //Menüleri getirelim. GetContentMenuList(null); } content.LastModifiedDate = DateTime.Now; //Yeni bir banner yüklediyse if (content.Image != null && uploadfile != null) { //Önceki resmi dosyadan silelim ki boşuna yer kaplamasın. string filePath = "/Uploads/Contents/" + cId + "/" + content.Image; if (System.IO.File.Exists(Server.MapPath(filePath))) { System.IO.File.Delete(Server.MapPath(filePath)); } if (uploadfile != null) { content.Image = uploadfile.FileName; } _generalFunctions.CreateDirectory(HttpContext.Server.MapPath("/Uploads/Contents/"), cId.ToString()); uploadfile.SaveAs(HttpContext.Server.MapPath("/Uploads/Contents/" + cId + "/" + uploadfile.FileName)); } _contentsService.Update(content); int contentId = content.ContentID; _contentInfoService.Update(contentInfo); //Veri tekrarını önlemek için önce Content Class'ı silelim. var deleteContentClasses = _contentClassesService.GetAll(cc => cc.ContentID == cId); foreach (var item in deleteContentClasses) { _contentClassesService.Delete(item.ContentClassID); } if (ids != null) { //Seçilen menüleri güncelleyelim. ContentClasses contentClasses; foreach (var id in ids) { contentClasses = new ContentClasses(); contentClasses.ContentID = content.ContentID; contentClasses.MenuID = id; contentClasses.ClassID = 0; _contentClassesService.Add(contentClasses); } } TempData.Add("message", "İçerik başarıyla güncellendi."); return(RedirectToAction("index", new { cId = content.ClassID })); } catch (Exception ex) { TempData.Add("message", "İçerik güncelleme işleminde hata ile karşılaştı. Hata: " + ex.Message); return(View()); } }