コード例 #1
0
        public IHttpActionResult DeleteRoleMenu(RoleMenuViewModel roleMenu)
        {
            var role = db.Roles.Find(roleMenu.RoleId);
            if (role == null)
                throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotFound, "不存在的RoleId!"));

            var menus = db.Menus.Where(item => item.Id == roleMenu.MenuId || item.ParentId == roleMenu.MenuId);

            foreach (var item in menus)
            {
                role.Menus.Remove(item);
                //role.Menus.Remove(db.Menus.Find(item.ParentId));
            }

            db.SaveChanges();

            //寫入AccessLog
            MPAccessLog.WriteEntry(User.Identity.Name, AccessAction.Delete, "RoleMenu", JsonConvert.SerializeObject(new { role.Id, role.Name, Menus = menus.Select(m => m.Id + m.Text).ToArray() }));

            return Ok();
        }
コード例 #2
0
        public IHttpActionResult PostRoleMenu(RoleMenuViewModel roleMenu)
        {
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }

            var role = db.Roles.Find(roleMenu.RoleId);
            if (role == null)
                throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotFound, "不存在的RoleId!"));

            var menus = db.Menus.Where(item => item.Id==roleMenu.MenuId || item.ParentId==roleMenu.MenuId);

            foreach (var item in menus)
            {
                role.Menus.Add(item);
                //role.Menus.Add(db.Menus.Find( item.ParentId));
            }

            try
            {
                db.SaveChanges();

                //寫入AccessLog
                MPAccessLog.WriteEntry(User.Identity.Name, AccessAction.Create, "RoleMenu", JsonConvert.SerializeObject(new { role.Id, role.Name, Menus = menus.Select(m => m.Id+m.Text).ToArray() }));

            }
            catch (Exception ex)
            {
                throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.BadRequest, ex.Message));
            }
            return Ok();
        }