using Infrastructure; using OpenAuth.App; using OpenAuth.App.SSO; using OpenAuth.App.ViewModel; using OpenAuth.Domain; using OpenAuth.Mvc.Models; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Web.Mvc; namespace OpenAuth.Mvc.Controllers { public class ModuleManagerController : BaseController { public ModuleManagerApp App { get; set; } // GET: /ModuleManager/ [Authenticate] public ActionResult Index() { return View(); } public ActionResult Assign(string firstId, string key) { ViewBag.FirstId = firstId; ViewBag.ModuleType = key; var moduleWithChildren = AuthUtil.GetCurrentUser().Modules .GenerateTree(u =>u.Id, u =>u.ParentId); var modules = key == "UserModule" ? App.LoadForUser(firstId) : App.LoadForRole(firstId); CheckModule(moduleWithChildren, modules); ViewBag.Modules = BuilderModules(moduleWithChildren); return View(); } private void CheckModule(IEnumerable> moduleWithChildren, List modules) { foreach (var module in moduleWithChildren) { if (module.Children.Any()) { CheckModule(module.Children, modules); } if (modules.Select(u => u.Id).Contains(module.Item.Id)) { module.Item.Checked = true; } } } public string BuilderModules(IEnumerable> modules) { StringBuilder sb = new StringBuilder(); foreach (var moduleView in modules) { if (moduleView.Children.Any()) { sb.Append("
\r\n"); sb.Append(""); BuildCheckbox(sb, moduleView); sb.Append("\r\n"); sb.Append("
\r\n"); sb.Append(BuilderModules(moduleView.Children)); sb.Append("
\r\n"); sb.Append("
\r\n"); //sb.Append("
\r\n"); //BuildCheckbox(sb, moduleView); //sb.Append("
\r\n"); //sb.Append(BuilderModules(moduleView.Children)); //sb.Append("
\r\n"); //sb.Append("
\r\n"); } else { BuildCheckbox(sb, moduleView); } } return sb.ToString(); } private void BuildCheckbox(StringBuilder sb, TreeItem moduleView) { sb.Append("\r\n"); } /// /// 加载模块下面的所有模块 /// public string Load(string orgId, int page = 1, int rows = 30) { return JsonHelper.Instance.Serialize(App.Load(orgId, page, rows)); } /// /// 加载用户模块 /// /// The user identifier. /// System.String. public string LoadForUser(string firstId) { var orgs = App.LoadForUser(firstId); return JsonHelper.Instance.Serialize(orgs); } /// /// 加载角色模块 /// /// The role identifier. /// System.String. public string LoadForRole(string firstId) { var orgs = App.LoadForRole(firstId); return JsonHelper.Instance.Serialize(orgs); } public string LoadModule() { var orgs = AuthUtil.GetCurrentUser().Modules.MapToList(); return JsonHelper.Instance.Serialize(orgs); } #region 添加编辑模块 //添加或修改模块 [HttpPost] public string Add(Module model) { try { App.AddOrUpdate(model); } catch (Exception ex) { Result.Status = false; Result.Message = ex.Message; } return JsonHelper.Instance.Serialize(Result); } [HttpPost] public string Delete(string[] ids) { try { foreach (var obj in ids) { App.Delete(obj); } } catch (Exception e) { Result.Status = false; Result.Message = e.Message; } return JsonHelper.Instance.Serialize(Result); } #endregion 添加编辑模块 } }