/// <summary> /// 加载分页数据 /// </summary> /// <param name="appid">appid</param> /// <param name="page"></param> /// <param name="size"></param> /// <returns></returns> public ActionResult PageData(string appid, int page = 1, int size = 10) { var where = string.IsNullOrEmpty(appid) ? (Expression <Func <Control, bool> >)(c => true) : (c => c.ClientApp.AppId.Equals(appid)); List <ControlOutputDto> list = ControlBll.LoadPageEntitiesNoTracking <int, ControlOutputDto>(page, size, out int total, where, c => c.Id, false).ToList(); return(PageResult(list, size, total)); }
/// <summary> /// 更新功能 /// </summary> /// <param name="model"></param> /// <returns></returns> public ActionResult Update(ControlInputDto model) { if (ModelState.IsValid) { Control control = ControlBll.GetById(model.Id); Mapper.Map(model, control); bool b = ControlBll.UpdateEntitySaved(control); return(ResultData(null, b, b ? "更新成功!" : "更新失败!")); } return(ResultData(null, false, "数据校验失败!")); }
/// <summary> /// 移除权限 /// </summary> /// <param name="id">功能id</param> /// <param name="pid">权限id</param> /// <returns></returns> public ActionResult RemovePermission(int id, int pid) { Control control = ControlBll.GetById(id); Permission permission = PermissionBll.GetById(pid); if (control != null && permission != null) { control.Permission.Remove(permission); bool b = ControlBll.UpdateEntitySaved(control); return(ResultData(null, b, b ? "权限移除成功!" : "权限移除失败!")); } return(ResultData(null, false, "未找到功能或权限!")); }
/// <summary> /// 切换功能控制器的可用状态 /// </summary> /// <param name="id">功能控制器id</param> /// <param name="state">可用状态</param> /// <returns></returns> public ActionResult ToggleState(int id, bool state) { Control control = ControlBll.GetById(id); if (control is null) { return(ResultData(null, false, "功能控制器不存在!")); } control.IsAvailable = !state; bool b = ControlBll.UpdateEntitySaved(control); return(ResultData(null, b, b ? "状态切换成功!" : "状态切换失败!")); }
/// <summary> /// 添加功能 /// </summary> /// <param name="model"></param> /// <returns></returns> public ActionResult Add(ControlInputDto model) { if (ModelState.IsValid) { Control control = model.Mapper <Control>(); control = ControlBll.AddEntitySaved(control); if (control != null) { return(ResultData(null, true, "功能添加成功!")); } return(ResultData(null, false, "功能添加失败")); } return(ResultData(null, false, "数据校验失败!")); }
/// <summary> /// 移除控制功能 /// </summary> /// <param name="id">权限id</param> /// <param name="cids">控制器id集合</param> /// <returns></returns> public ActionResult RemoveControls(int id, string cids) { string[] ids = cids.Split(','); Permission permission = PermissionBll.GetById(id); if (permission is null) { return(ResultData(null, false, "未找到相应的权限信息!")); } List <Control> controls = ControlBll.LoadEntities(c => ids.Contains(c.Id.ToString())).ToList(); controls.ForEach(c => permission.Controls.Remove(c)); bool b = PermissionBll.UpdateEntitySaved(permission); return(ResultData(null, b, b ? "权限配置完成!" : "权限配置失败!")); }
/// <summary> /// 获取该权限的控制器 /// </summary> /// <param name="id"></param> /// <param name="page"></param> /// <param name="size"></param> /// <param name="kw"></param> /// <returns></returns> public ActionResult MyControls(int id, int page = 1, int size = 10, string kw = "") { Expression <Func <Control, bool> > where; Expression <Func <Control, bool> > where2; if (!string.IsNullOrEmpty(kw)) { where = u => u.Permission.All(c => c.Id != id) && u.Name.Contains(kw); where2 = u => u.Permission.Any(c => c.Id == id) && u.Name.Contains(kw); } else { where = u => u.Permission.All(c => c.Id != id); where2 = u => u.Permission.Any(c => c.Id == id); } List <ControlOutputDto> not = ControlBll.LoadPageEntities <int, ControlOutputDto>(page, size, out int total1, where, u => u.Id, false).ToList(); //不属于该应用 List <ControlOutputDto> my = ControlBll.LoadPageEntities <int, ControlOutputDto>(page, size, out int total2, where2, u => u.Id, false).ToList(); //属于该应用 return(PageResult(new { my, not }, size, total1 >= total2 ? total1 : total2)); }
/// <summary> /// 获取功能详情 /// </summary> /// <param name="id"></param> /// <returns></returns> public ActionResult Get(int id) { ControlOutputDto c = ControlBll.GetById(id).Mapper <ControlOutputDto>(); return(ResultData(c)); }
/// <summary> /// 删除功能 /// </summary> /// <param name="id"></param> /// <returns></returns> public ActionResult Delete(int id) { bool b = ControlBll.DeleteByIdSaved(id); return(ResultData(null, b, b ? "删除成功!" : "删除失败!")); }