// WTM默认页面 Wtm buidin page using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using WalkingTec.Mvvm.Core; using WalkingTec.Mvvm.Core.Extensions; using WalkingTec.Mvvm.Mvc; using WalkingTec.Mvvm.Mvc.Admin.ViewModels.FrameworkRoleVMs; namespace WalkingTec.Mvvm.Admin.Api { [AuthorizeJwtWithCookie] [ActionDescription("_Admin.RoleApi")] [ApiController] [Route("api/_[controller]")] public class FrameworkRoleController : BaseApiController { [ActionDescription("Sys.Search")] [HttpPost("[action]")] public string Search(FrameworkRoleSearcher searcher) { var vm = Wtm.CreateVM(); vm.Searcher = searcher; return vm.GetJson(); } [ActionDescription("Sys.Get")] [HttpGet("{id}")] public FrameworkRoleVM Get(Guid id) { var vm = Wtm.CreateVM(id); return vm; } [ActionDescription("GetPageActions")] [HttpGet("[action]/{id}")] [AllRights] public FrameworkRoleMDVM2 GetPageActions(Guid id) { var vm = Wtm.CreateVM(id); return vm; } [ActionDescription("_Admin.PageFunction")] [HttpPut("[action]")] public async Task EditPrivilege(FrameworkRoleMDVM2 vm) { if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); } else { await vm.DoChangeAsync(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); } else { return Ok(vm.Entity); } } } [ActionDescription("Sys.Create")] [HttpPost("[action]")] public IActionResult Add(FrameworkRoleVM vm) { if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); } else { vm.DoAdd(); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); } else { return Ok(vm.Entity); } } } [ActionDescription("Sys.Edit")] [HttpPut("[action]")] public IActionResult Edit(FrameworkRoleVM vm) { if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); } else { vm.DoEdit(false); if (!ModelState.IsValid) { return BadRequest(ModelState.GetErrorJson()); } else { return Ok(vm.Entity); } } } [HttpPost("BatchDelete")] [ActionDescription("Sys.Delete")] public async Task BatchDelete(string[] ids) { var vm = Wtm.CreateVM(); List RoleCode = new List(); if (ids != null && ids.Count() > 0) { RoleCode = DC.Set().CheckIDs(new List(ids)).Select(x => x.RoleCode).ToList(); vm.Ids = ids; } else { return Ok(); } if (!ModelState.IsValid || !vm.DoBatchDelete()) { return BadRequest(ModelState.GetErrorJson()); } else { var ur = DC.Set().Where(x => RoleCode.Contains(x.RoleCode)).ToList(); var itcodes = ur.Select(x => x.UserCode).ToArray(); DC.Set().RemoveRange(ur); DC.SaveChanges(); await Wtm.RemoveUserCache(itcodes); return Ok(ids.Count()); } } [ActionDescription("Sys.Export")] [HttpPost("[action]")] public IActionResult ExportExcel(FrameworkRoleSearcher searcher) { var vm = Wtm.CreateVM(); vm.Searcher = searcher; vm.SearcherMode = ListVMSearchModeEnum.Export; return vm.GetExportData(); } [ActionDescription("Sys.ExportByIds")] [HttpPost("[action]")] public IActionResult ExportExcelByIds(string[] ids) { var vm = Wtm.CreateVM(); if (ids != null && ids.Count() > 0) { vm.Ids = new List(ids); vm.SearcherMode = ListVMSearchModeEnum.CheckExport; } return vm.GetExportData(); } [ActionDescription("Sys.DownloadTemplate")] [HttpGet("[action]")] public IActionResult GetExcelTemplate() { var vm = Wtm.CreateVM(); var qs = new Dictionary(); foreach (var item in Request.Query.Keys) { qs.Add(item, Request.Query[item]); } vm.SetParms(qs); var data = vm.GenerateTemplate(out string fileName); return File(data, "application/vnd.ms-excel", fileName); } [ActionDescription("Sys.Import")] [HttpPost("[action]")] public ActionResult Import(FrameworkRoleImportVM vm) { if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData()) { return BadRequest(vm.GetErrorJson()); } else { return Ok(vm.EntityList.Count); } } } }