public async Task <IActionResult> UpdateRoleMenus(string roleId, string menus) { Guid rId = new Guid(roleId); var rms = _scontext.SecurityRoleMenus.Where(rr => rr.RoleId == rId).ToList(); _scontext.RemoveRange(rms); await _scontext.SaveChangesAsync(); var menuar = menus.Split('|'); foreach (string menuId in menuar) { SecurityRoleMenus r = new SecurityRoleMenus(); r.RoleId = rId; r.MenuId = int.Parse(menuId); r.EditedBy = new Guid(HttpContext.Session.GetString("memberId")); r.EditedDate = DateTime.Now; _scontext.Add(r); } await _scontext.SaveChangesAsync(); return(Json(new { result = "success" })); }
public async Task <IActionResult> CreateRole([Bind("RoleName")] SecurityRoles securityRoles) { if (ModelState.IsValid) { securityRoles.RoleId = Guid.NewGuid(); securityRoles.CreatedBy = new Guid(HttpContext.Session.GetString("memberId")); securityRoles.CreatedDate = DateTime.Now; securityRoles.EditedBy = new Guid(HttpContext.Session.GetString("memberId")); securityRoles.EditedDate = DateTime.Now; securityRoles.x_status = "Y"; securityRoles.RoleName = securityRoles.RoleName.Trim(); _scontext.Add(securityRoles); SecurityRoleMenus rm1 = new SecurityRoleMenus(); rm1.RoleId = securityRoles.RoleId; rm1.MenuId = 951000; rm1.EditedBy = securityRoles.EditedBy; rm1.EditedDate = securityRoles.EditedDate; _scontext.Add(rm1); SecurityRoleMenus rm2 = new SecurityRoleMenus(); rm2.RoleId = securityRoles.RoleId; rm2.MenuId = 951030; rm2.EditedBy = securityRoles.EditedBy; rm2.EditedDate = securityRoles.EditedDate; _scontext.Add(rm2); SecurityRoleMenus rm3 = new SecurityRoleMenus(); rm3.RoleId = securityRoles.RoleId; rm3.MenuId = 951040; rm3.EditedBy = securityRoles.EditedBy; rm3.EditedDate = securityRoles.EditedDate; _scontext.Add(rm3); SecurityRoleMenus rm4 = new SecurityRoleMenus(); rm4.RoleId = securityRoles.RoleId; rm4.MenuId = 951050; rm4.EditedBy = securityRoles.EditedBy; rm4.EditedDate = securityRoles.EditedDate; _scontext.Add(rm4); try { await _scontext.SaveChangesAsync(); } catch (Exception e) { //"Violation of UNIQUE KEY constraint 'UK_SecurityRoles'. Cannot insert duplicate key in object 'dbo.SecurityRoles'. The duplicate key value is (??????).\r\nThe statement has been terminated." if (e.InnerException.Message.Contains("UNIQUE")) { return(Json(new { result = "dup", RoleName = securityRoles.RoleName })); } else { return(Json(new { result = "fail" })); } } return(Json(new { result = "success" })); } return(Json(new { result = "fail" })); }