public ActionResult AltKategoriTanimi(AltKategori cat) { try { db.AltKategori.Add(cat); db.SaveChanges(); #region , Kategori Rolleri Ekleme int Lastid = 0; if (db.AltKategori.ToList().Count != 0) { Lastid = db.AltKategori.Max(x => x.ID); } AltKategori k = db.AltKategori.Where(x => x.ID == Lastid).SingleOrDefault(); int adminID = 1; adminID = (int)db.Rol.Where(x => x.RolAdi == "Admin").SingleOrDefault().ID; KategoriRol kr2 = new KategoriRol { RolID = adminID, KategoriID = k.ID }; db.KategoriRol.Add(kr2); db.SaveChanges(); Personel p = (Personel)Session["Kullanici"]; if (p.RolID != adminID) { KategoriRol kr = new KategoriRol { RolID = p.RolID, KategoriID = k.ID }; db.KategoriRol.Add(kr); db.SaveChanges(); } #endregion TempData["GenelMesaj"] = "Kategori tanımı başarılı bir şekilde tamamlanmıştır."; return(RedirectToAction("AltKategoriListesi")); } catch (Exception) { return(Redirect("/Admin/Hata")); } }
public ActionResult Yetkiler(int RolID, string menuler, string islemler, string katrol) { try { //, MenuList list , IslemErisimList list2 Rol r = db.Rol.Where(x => x.ID == RolID).FirstOrDefault(); // Düzenlenmek istenen Rolu bul if (r == null) // rol boş ise hata döndür { return(RedirectToAction("Hata", "Admin")); } #region ,Menü Rolleri update //Bu role ait tüm yetkileri List <MenuRol> menuRol = db.MenuRol.Where(x => x.RolID == r.ID).ToList(); // Menü rollerinin silinmesi foreach (var item in menuRol) { db.MenuRol.Remove(item); } db.SaveChanges(); // roller sıfırlandı. //Tüm rolleri yeniden yükle ve değişiklikleri kayıt et. string[] Menuparts = menuler.Split('^'); Array.Reverse(Menuparts); List <Menu> Eklenenmenuler = new List <Menu>(); for (int i = 0; i < Menuparts.Length; i++) { string s = Menuparts[i].ToString(); Menu alt = db.Menu.Where(x => x.Adi == s).FirstOrDefault(); if (alt != null) { Eklenenmenuler.Add(alt); } } foreach (Menu item in Eklenenmenuler) { MenuRol rol = new MenuRol(); rol.MenuID = item.ID; rol.RolID = RolID; db.MenuRol.Add(rol); db.SaveChanges(); } // MenuList.RolKontrol(list, RolID); ViewBag.Yetkileri = db.MenuRol.Where(x => x.RolID == r.ID).ToList(); ViewBag.Menuler = db.Menu.ToList(); #endregion #region ,İşlem Rolleri Update //Bu role ait post izinleri List <ErisimRol> erisimRol = db.ErisimRol.Where(x => x.RolID == r.ID).ToList(); // Erisim rollerinin silinmesi foreach (var item in erisimRol) { db.ErisimRol.Remove(item); } db.SaveChanges(); // roller sıfırlandı. string[] Islemparts = islemler.Split('^'); List <IslemErisim> islemlerim = new List <IslemErisim>(); for (int i = 0; i < Islemparts.Length; i++) { string s = Islemparts[i].ToString(); IslemErisim islemi = db.IslemErisim.Where(x => x.Adı == s).FirstOrDefault(); if (islemi != null) { islemlerim.Add(islemi); } } //Tüm erisimleri yeniden yükle ve değişiklikleri kayıt et. foreach (IslemErisim item in islemlerim) { ErisimRol rol = new ErisimRol(); rol.ErisimID = item.ID; rol.RolID = RolID; db.ErisimRol.Add(rol); db.SaveChanges(); } #endregion #region , ürün Kategori rolleri string[] parts = katrol.Split('^'); List <AltKategori> alts = new List <AltKategori>(); for (int i = 0; i < parts.Length; i++) { string s = parts[i].ToString(); AltKategori alt = db.AltKategori.Where(x => x.KategoriAdi == s).FirstOrDefault(); if (alt != null) { alts.Add(alt); } } List <KategoriRol> kr = db.KategoriRol.Where(x => x.RolID == RolID).ToList(); foreach (var item in kr) // tüm kategori rollerini sil. { db.KategoriRol.Remove(item); } db.SaveChanges(); //tüm rolleri yeniden yükle foreach (AltKategori item in alts) { KategoriRol ktr = new KategoriRol(); ktr.RolID = RolID; ktr.KategoriID = item.ID; db.KategoriRol.Add(ktr); db.SaveChanges(); } #endregion //Sayfayı geri yükle TempData["GenelMesaj"] = "Profil yetkileri başarılı bir şekilde güncellenmiştir."; return(RedirectToAction("ProfilListesi")); } catch (Exception) { return(Redirect("/Admin/Hata")); } }