/** * Function: GetRoleWithID * List Menu through Role ID * @returns: Roles and list Menus * Author: Le Dang Son * Date: 06/08/2012 */ public Roles GetRoleWithID() { Roles roles = new Roles(); using (var db = new FineArtContext()) { roles = (Roles)db.Roles.Include("menu").Where(r => r.ID == this.ID).FirstOrDefault(); } return roles; }
public ActionResult MenusRole(string id) { int admin = base.Authentication(); if (admin == 0) { return Redirect("~/member/logout"); } else if (admin == 1) { base.LoadMenu(); try { int idd = Convert.ToInt16(id); Roles role = new Roles(); role.ID = idd; role = role.GetRoleWithID(); List<Menus> listMenu = role.Menu.ToList(); listMenu.ForEach(delegate(Menus menu) { if (menu.Controller == "") { menu.Controller = "Index"; } if (menu.Action == "") { menu.Action = "Index"; } Strings stringsLibs = new Strings(); menu.Controller = stringsLibs.Capacital(menu.Controller); menu.Action = stringsLibs.Capacital(menu.Action); }); ViewBag.RoleID = idd; ViewBag.Title += " Menus for " + role.Name; ViewBag.listMenu = listMenu; } catch { } return View(); } else { Session["errorContorllerAction"] = true; return Redirect("~/administrator"); } }
/** * Controller: Roles * Action: Index * List all roles system * Author: Le Dang Son * Date: 08/08/2012 */ public ActionResult Index() { int admin = base.Authentication(); if (admin == 0) { return Redirect("~/member/logout"); } else if (admin == 1) { base.LoadMenu(); Roles rolesModels = new Roles(); ViewBag.listRole = rolesModels.ListRole(); ViewBag.Title += " Roles"; return View(); } else { Session["errorContorllerAction"] = true; return Redirect("~/administrator"); } }
public void LoadMenu() { if (Session["admin"] != null) { Members member = (Members)Session["admin"]; Roles rolesModels = new Roles(); rolesModels.ID = member.Role.ID; rolesModels = rolesModels.GetRoleWithID(); ViewBag.Title = rolesModels.Name + " Page:"; ICollection<Menus> listMenus = rolesModels.Menu.Where(m=>m.Display == true).ToList(); //var listParentMenu = listMenu.Where(m => m.ParentID == -1); //foreach (Menus parentMenu in listParentMenu) //{ // var listChildMenu = listMenu.Where(m => m.ParentID == parentMenu.ID); // foreach (Menus childMenu in listChildMenu) // { // Response.Write(childMenu.Name); // } //} ViewBag.listMenuMain = listMenus; } }
public ActionResult Add(FormCollection form) { int admin = base.Authentication(); if (admin == 0) { return Redirect("~/member/logout"); } else if (admin == 1) { base.LoadMenu(); var db = new FineArtContext(); ViewBag.listMenu = db.Menus.ToList(); if (form["submit_role"] != null) { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.Append("<ul>"); Strings stringsLibs = new Strings(); if (form["Name"].Trim() == "") { stringBuilder.Append("<li>Please type role name</li>"); } if (form["Alias"].Trim() == "" || !Validator.ISAlias(form["Alias"])) { stringBuilder.Append("<li>Please type role alias</li>"); } else { try { string alias = form["Alias"].Trim().ToString(); var role = db.Roles.Where(c => c.Alias == alias).First(); stringBuilder.Append("<li>This role alias had been exists in database, try a different</li>"); } catch { } } int[] IDMenus = stringsLibs.ListID(form["Menus"]); ViewBag.IDMenus = IDMenus; ICollection<Menus> listMenus = db.Menus.Where(s => IDMenus.Contains(s.ID)).ToList(); if (stringBuilder.ToString() == "<ul>") { Roles roles = new Roles { Name = form["Name"].Trim(), Alias = form["Alias"].Trim(), Description = form["Description"].Trim(), Menu = listMenus }; db.Roles.Add(roles); db.SaveChanges(); ViewBag.success = "Add role success!"; } else { stringBuilder.Append("</ul>"); ViewBag.error = stringBuilder.ToString(); ViewBag.dataForm = form; } } return View(); } else { Session["errorContorllerAction"] = true; return Redirect("~/administrator"); } }