public UI.Controls.Menu.SiteMapNode CreateMenuForCustomReport(HRM.Presentation.UI.Controls.Menu.XmlSiteMap sitemap, List <Rep_MasterModel> ListMaster, ModuleName module, string alias) { List <Rep_MasterModel> item = ListMaster.Where(m => m.ReportStoreModule == module.ToString()).ToList(); if (item != null && item.Count > 0) { //Add menu cha HRM.Presentation.UI.Controls.Menu.SiteMapNode node = new UI.Controls.Menu.SiteMapNode(); node.ControllerName = "Sys_CustomReport"; node.ActionName = "GeneralCustomReport"; node.HrmWebSite = "Hrm_Sys_Web"; //node.Alias = ConstantPathWeb.Hrm_Main_Web; node.RouteValues = sitemap.RootNode.ChildNodes.LastOrDefault().RouteValues; node.ImageUrl = "/Content/images/icons/submenu/menu/Att_ShiftTimeSheet.png"; node.Title = "Báo Cáo Động"; node.Visible = true; node.ChildNodes = new List <UI.Controls.Menu.SiteMapNode>(); foreach (var t in item) { HRM.Presentation.UI.Controls.Menu.SiteMapNode nodeitem = new UI.Controls.Menu.SiteMapNode(); nodeitem.ControllerName = "Sys_CustomReport"; nodeitem.ActionName = "GeneralCustomReport?id=" + t.ID; nodeitem.HrmWebSite = "Hrm_Sys_Web"; nodeitem.Alias = alias; //nodeitem.Alias = ConstantPathWeb.Hrm_Main_Web; nodeitem.Url = "#" + nodeitem.HrmWebSite + "/" + nodeitem.ControllerName + "/" + nodeitem.ActionName; nodeitem.RouteValues = sitemap.RootNode.ChildNodes.LastOrDefault().RouteValues; nodeitem.ImageUrl = "/Content/images/icons/submenu/menu/Att_ShiftTimeSheet.png"; nodeitem.Title = t.ReportName; nodeitem.Visible = true; node.ChildNodes.Add(nodeitem); } return(node); } return(null); }
public ActionResult LoadMenu() { //try //{ #region Load Menu var siteMap = new HRM.Presentation.UI.Controls.Menu.XmlSiteMap(); if (HttpContext.Cache["SiteMap"] == null) { var serviceMaster = new RestServiceClient<List<Rep_MasterModel>>(UserLogin); serviceMaster.SetCookies(this.Request.Cookies, _hrm_Sys_Service); siteMap.LoadFrom("~/Mvc.sitemap"); var listMaster = serviceMaster.Get(_hrm_Sys_Service, "api/Rep_Control/", Guid.NewGuid()); UI.Controls.Menu.SiteMapNode _tmp; if (listMaster != null && listMaster.Count > 0) { foreach (var i in siteMap.RootNode.ChildNodes) { if (i.ChildNodes.Count > 0) { switch (i.HrmWebSite) { case "Hrm_Rec_Web": _tmp = CreateMenuForCustomReport(siteMap, listMaster, ModuleName.Recruitment, i.ChildNodes.FirstOrDefault().Alias); if (_tmp != null) { i.ChildNodes.Add(_tmp); } break; case "Hrm_Eva_Web": _tmp = CreateMenuForCustomReport(siteMap, listMaster, ModuleName.Evaluation, i.ChildNodes.FirstOrDefault().Alias); if (_tmp != null) { i.ChildNodes.Add(_tmp); } break; case "Hrm_Main_Web": _tmp = CreateMenuForCustomReport(siteMap, listMaster, ModuleName.HR, i.ChildNodes.FirstOrDefault().Alias); if (_tmp != null) { i.ChildNodes.Add(_tmp); } break; case "Hrm_Att_Web": _tmp = CreateMenuForCustomReport(siteMap, listMaster, ModuleName.Attendance, i.ChildNodes.FirstOrDefault().Alias); if (_tmp != null) { i.ChildNodes.Add(_tmp); } break; case "Hrm_Sal_Web": _tmp = CreateMenuForCustomReport(siteMap, listMaster, ModuleName.Salary, i.ChildNodes.FirstOrDefault().Alias); if (_tmp != null) { i.ChildNodes.Add(_tmp); } break; case "Hrm_Can_Web": _tmp = CreateMenuForCustomReport(siteMap, listMaster, ModuleName.Canteen, i.ChildNodes.FirstOrDefault().Alias); if (_tmp != null) { i.ChildNodes.Add(_tmp); } break; case "Hrm_Lau_Web": _tmp = CreateMenuForCustomReport(siteMap, listMaster, ModuleName.Laundry, i.ChildNodes.FirstOrDefault().Alias); if (_tmp != null) { i.ChildNodes.Add(_tmp); } break; case "Hrm_Cat_Web": _tmp = CreateMenuForCustomReport(siteMap, listMaster, ModuleName.Category, i.ChildNodes.FirstOrDefault().Alias); if (_tmp != null) { i.ChildNodes.Add(_tmp); } break; case "Hrm_Ins_Web": _tmp = CreateMenuForCustomReport(siteMap, listMaster, ModuleName.Insurance, i.ChildNodes.FirstOrDefault().Alias); if (_tmp != null) { i.ChildNodes.Add(_tmp); } break; case "Hrm_Sys_Web": _tmp = CreateMenuForCustomReport(siteMap, listMaster, ModuleName.System, i.ChildNodes.FirstOrDefault().Alias); if (_tmp != null) { i.ChildNodes.Add(_tmp); } break; default: break; } } } } HttpContext.Cache["SiteMap"] = siteMap; } else { siteMap = (HRM.Presentation.UI.Controls.Menu.XmlSiteMap)HttpContext.Cache["SiteMap"]; } #endregion #region Load Permission TempPermissionModel result = new TempPermissionModel(); Guid userId = Guid.Empty; if (Session[SessionObjects.UserId] != null) { if (Session[SessionObjects.UserId].ToString() != Common.UserNameSystem) { userId = (Guid)Session[SessionObjects.UserId]; } else { return View(new List<string>()); } } PermissionModel permission = new PermissionModel(); //do không truyền kiểu string lên được nên mượn model có guid để truyền lên api permission.UserID = userId; var service = new RestServiceClient<TempPermissionModel>(UserLogin); if (HttpContext.Cache[SessionObjects.Permission + userId] == null) { service.SetCookies(this.Request.Cookies, _hrm_Sys_Service); result = service.Put(_hrm_Sys_Service, "api/SysPermission/", permission); //lưu cache quyền của user if (result != null) { HttpContext.Cache[SessionObjects.Permission + userId] = result; } } else { result = (TempPermissionModel)HttpContext.Cache[SessionObjects.Permission + userId]; } #endregion if (result != null) { List<string> modelResult = GetPermissionCurrentUser(result.Data, siteMap.RootNode.ChildNodes.ToList()).Distinct().ToList(); modelResult.Add(siteMap.RootNode.ControllerName);//Add Quyền View Của Trang Home modelResult.Add("Sys_CustomReport"); return View(modelResult); } return View(); //} //catch //{ // return View(); //} }
public ActionResult GetSubOfMenu(string siteName) { var siteMap = new XmlSiteMap(); if (HttpContext.Cache["SiteMap"] == null) { siteMap.LoadFrom("~/Mvc.sitemap"); HttpContext.Cache["SiteMap"] = siteMap; } else if (HttpContext.Cache["ChangeLanguage"] != null && HttpContext.Cache["ChangeLanguage"].ToString() == bool.TrueString) { siteMap.LoadFrom("~/Mvc.sitemap"); HttpContext.Cache["SiteMap"] = siteMap; HttpContext.Cache["ChangeLanguage"] = false; } else { siteMap = (HRM.Presentation.UI.Controls.Menu.XmlSiteMap)HttpContext.Cache["SiteMap"]; } var listMenu = siteMap.RootNode.ChildNodes.Where(w => w.ModuleName == siteName).FirstOrDefault(); if (listMenu == null) return null; return Json(listMenu.ChildNodes); }
public ActionResult LoadMenu() { //try //{ #region Load Menu var siteMap = new HRM.Presentation.UI.Controls.Menu.XmlSiteMap(); if (HttpContext.Cache["SiteMap"] == null) { var serviceMaster = new RestServiceClient <List <Rep_MasterModel> >(UserLogin); serviceMaster.SetCookies(this.Request.Cookies, _hrm_Sys_Service); siteMap.LoadFrom("~/Mvc.sitemap"); var listMaster = serviceMaster.Get(_hrm_Sys_Service, "api/Rep_Control/", Guid.NewGuid()); UI.Controls.Menu.SiteMapNode _tmp; if (listMaster != null && listMaster.Count > 0) { foreach (var i in siteMap.RootNode.ChildNodes) { if (i.ChildNodes.Count > 0) { switch (i.HrmWebSite) { case "Hrm_Rec_Web": _tmp = CreateMenuForCustomReport(siteMap, listMaster, ModuleName.Recruitment, i.ChildNodes.FirstOrDefault().Alias); if (_tmp != null) { i.ChildNodes.Add(_tmp); } break; case "Hrm_Eva_Web": _tmp = CreateMenuForCustomReport(siteMap, listMaster, ModuleName.Evaluation, i.ChildNodes.FirstOrDefault().Alias); if (_tmp != null) { i.ChildNodes.Add(_tmp); } break; case "Hrm_Main_Web": _tmp = CreateMenuForCustomReport(siteMap, listMaster, ModuleName.HR, i.ChildNodes.FirstOrDefault().Alias); if (_tmp != null) { i.ChildNodes.Add(_tmp); } break; case "Hrm_Att_Web": _tmp = CreateMenuForCustomReport(siteMap, listMaster, ModuleName.Attendance, i.ChildNodes.FirstOrDefault().Alias); if (_tmp != null) { i.ChildNodes.Add(_tmp); } break; case "Hrm_Sal_Web": _tmp = CreateMenuForCustomReport(siteMap, listMaster, ModuleName.Salary, i.ChildNodes.FirstOrDefault().Alias); if (_tmp != null) { i.ChildNodes.Add(_tmp); } break; case "Hrm_Can_Web": _tmp = CreateMenuForCustomReport(siteMap, listMaster, ModuleName.Canteen, i.ChildNodes.FirstOrDefault().Alias); if (_tmp != null) { i.ChildNodes.Add(_tmp); } break; case "Hrm_Lau_Web": _tmp = CreateMenuForCustomReport(siteMap, listMaster, ModuleName.Laundry, i.ChildNodes.FirstOrDefault().Alias); if (_tmp != null) { i.ChildNodes.Add(_tmp); } break; case "Hrm_Cat_Web": _tmp = CreateMenuForCustomReport(siteMap, listMaster, ModuleName.Category, i.ChildNodes.FirstOrDefault().Alias); if (_tmp != null) { i.ChildNodes.Add(_tmp); } break; case "Hrm_Ins_Web": _tmp = CreateMenuForCustomReport(siteMap, listMaster, ModuleName.Insurance, i.ChildNodes.FirstOrDefault().Alias); if (_tmp != null) { i.ChildNodes.Add(_tmp); } break; case "Hrm_Sys_Web": _tmp = CreateMenuForCustomReport(siteMap, listMaster, ModuleName.System, i.ChildNodes.FirstOrDefault().Alias); if (_tmp != null) { i.ChildNodes.Add(_tmp); } break; default: break; } } } } HttpContext.Cache["SiteMap"] = siteMap; } else { siteMap = (HRM.Presentation.UI.Controls.Menu.XmlSiteMap)HttpContext.Cache["SiteMap"]; } #endregion #region Load Permission TempPermissionModel result = new TempPermissionModel(); Guid userId = Guid.Empty; if (Session[SessionObjects.UserId] != null) { if (Session[SessionObjects.UserId].ToString() != Common.UserNameSystem) { userId = (Guid)Session[SessionObjects.UserId]; } else { return(View(new List <string>())); } } PermissionModel permission = new PermissionModel(); //do không truyền kiểu string lên được nên mượn model có guid để truyền lên api permission.UserID = userId; var service = new RestServiceClient <TempPermissionModel>(UserLogin); if (HttpContext.Cache[SessionObjects.Permission + userId] == null) { service.SetCookies(this.Request.Cookies, _hrm_Sys_Service); result = service.Put(_hrm_Sys_Service, "api/SysPermission/", permission); //lưu cache quyền của user if (result != null) { HttpContext.Cache[SessionObjects.Permission + userId] = result; } } else { result = (TempPermissionModel)HttpContext.Cache[SessionObjects.Permission + userId]; } #endregion if (result != null) { List <string> modelResult = GetPermissionCurrentUser(result.Data, siteMap.RootNode.ChildNodes.ToList()).Distinct().ToList(); modelResult.Add(siteMap.RootNode.ControllerName);//Add Quyền View Của Trang Home modelResult.Add("Sys_CustomReport"); return(View(modelResult)); } return(View()); //} //catch //{ // return View(); //} }