예제 #1
0
        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);
        }
예제 #2
0
파일: HomeController.cs 프로젝트: dtafe/vnr
        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();
            //}
        }
예제 #3
0
파일: HomeController.cs 프로젝트: dtafe/vnr
        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);

        }
예제 #4
0
        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();
            //}
        }