using AMESCoreStudio.Web.Models; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Threading.Tasks; using AMESCoreStudio.WebApi; using Microsoft.AspNetCore.Authorization; namespace AMESCoreStudio.Web.Controllers { public class HomeController : Controller { private readonly ILogger<HomeController> _logger; public readonly IAuth _authApi; public readonly ISYS _sysApi; public HomeController(ILogger<HomeController> logger, IAuth authApi, ISYS sysApi) { _logger = logger; _authApi = authApi; _sysApi = sysApi; } public IActionResult Index() { return View(); } /// <summary> /// /// </summary> /// <returns></returns> public async Task<IActionResult> Framework() { var info = await _authApi.AuthInfo(); if (Request.Cookies["_AMESCookie"] != null) { var userID = ""; HttpContext.Request.Cookies.TryGetValue("UserID", out userID); if (userID != null) { if (int.Parse(userID.ToString()) >= 0) { int user_id = int.Parse(userID.ToString()); var userRole = await _sysApi.GetUserRolesByUser(user_id); int role_id = userRole[0].RoleID; var userModule = await _sysApi.GetRoleModulesByRole(role_id, 0, 10); var userProgram = await _sysApi.GetRoleProgramsByRole(role_id, 0, 10); string menuData = "<ul id = 'nav' class='layui-tab-item layui-show'>"; for (int i = 0; i < userModule.Count; i++) { int module_id = userModule[i].ModuleID; if (i == 0) { menuData = menuData + "<li class='open'>"; } else { menuData = menuData + "<li>"; } menuData = menuData + "<a class='border active'>"; menuData = menuData + "<i class='fa fa-star fa-fw' style='color:#77B272;'></i><cite style='color:#77B272;'> " + userModule[i].Module.ModuleName + " </cite><i class='fa fa-angle-up fa-fw nav_right'></i>"; menuData = menuData + "</a>"; menuData = menuData + "<ul class='sub-menu' style='display: block;'>"; for (int j = 0; j < userProgram.Count; j++) { if (userProgram[j].Program.ModuleID == module_id) { menuData = menuData + "<li class='sub-tab' hg-title='" + userProgram[j].Program.ProgramName + "' hg-nav='" + userProgram[j].Program.ProgramPath + "'>"; menuData = menuData + "<a><i class='fa fa-key fa-fw'></i><cite>" + userProgram[j].Program.ProgramName + "</cite></a>"; menuData = menuData + "</li>"; } } menuData = menuData + "</ul>"; menuData = menuData + "</li>"; } menuData = menuData + "</ul>"; ViewData["MenuList"] = menuData; return View(); } } else { return RedirectToAction("Index", "Login"); } } return View(); //return RedirectToAction("Index", "Login"); } /// <summary> /// 弹窗子窗口,保存后刷新父级页面数据表格 /// </summary> /// <param name="msg">弹窗提示信息</param> /// <param name="json">不为空时,只刷新本地数据</param> /// <returns></returns> public IActionResult Refresh(string msg = "保存成功!", string json = "") { ViewBag.Msg = msg; ViewBag.Data = json; return View(); } /// <summary> /// 彈子視窗關閉後,刷新母視窗整個頁面 /// </summary> /// <param name="msg">Msg提示訊息</param> /// <returns></returns> public IActionResult WindowReload(string msg = "保存成功!") { ViewBag.Msg = msg; return View(); } public IActionResult Privacy() { return View(); } [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)] public IActionResult Error() { return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier }); } } }