Esempio n. 1
0
        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" }));
        }