public ActionResult Sil(int id) { Haber dbHaber = _haberRepository.GetById(id); var dbDetayResim = _resimRepository.GetMany(x => x.HaberID == id); if (dbHaber == null) { throw new Exception("Haber Bulunamadı"); } string file_name = dbHaber.Resim; string path = Server.MapPath(file_name); FileInfo file = new FileInfo(path); if (file.Exists) // Dosyanın varlığı kontrol ediliyor. Fiziksel olarak var ise siliniyor. { file.Delete(); } if (dbDetayResim != null) { foreach (var item in dbDetayResim) { string detayPath = Server.MapPath(item.ResimUrl); FileInfo files = new FileInfo(detayPath); if (files.Exists) { files.Delete(); } } } _haberRepository.Delete(id); _haberRepository.Save(); TempData["Bilgi"] = "Haber Başarılı Bir Şekilde Silindi"; return(RedirectToAction("Index", "Haber")); }
public ActionResult Sil(int id) { Haber dbHaber = _haberRepository.GetById(id); var dbDetayResim = _resimRepository.GetMany(x => x.HaberID == id); if (dbHaber == null) { throw new Exception("Haber Bulunamadı!"); } //haberin resmine erişip silcez klasörden string file_name = dbHaber.Resim; string path = Server.MapPath(file_name); FileInfo file = new FileInfo(path); if (file.Exists) //dosyanın varlığı kontrol ediliyor .fiziksel olarak var ise siliniyor { file.Delete(); } //detay resimleride silcez if (dbDetayResim != null) { foreach (var item in dbDetayResim) { string resimDetayPath = Server.MapPath(item.ResimUrl); FileInfo files = new FileInfo(resimDetayPath); if (files.Exists) { files.Delete(); } } } _haberRepository.Delete(id); //Haber sildikten sonra zaten Resim tablosundaki bu habere bağlı olan resimlerde silinecek zaten .çünkü foreigb key bağlantısında delete rule kısmı cascade olduğu için otomatikmen Resim tablosundaki verilerde silinir. _haberRepository.Save(); TempData["Bilgi"] = "Haber Başarılı bir şekilde silindi"; return(RedirectToAction("Index", "Haber")); }