예제 #1
0
        public async Task <List <MainMenu> > MakeMenuObjectAsync(bool isHttc)
        {
            #region 讀取該使用者角色的所有功能表清單
            var dataRequest = new DataRequest()
            {
                Sorted = new SortCondition()
                {
                    Id    = (int)MenuDataSortEnum.Default,
                    Title = "預設"
                },
                Skip = 0,
                Take = int.MaxValue
            };
            var allMenuData = await MenuDataService.GetByHeaderIDAsync(RoleId, dataRequest);

            var menuDatas = allMenuData.Result;
            menuDatas = menuDatas
                        .Where(x => x.Enable == true)
                        .OrderBy(x => x.Sequence).ToList();
            #endregion

            List <MainMenu> mainMenus = new();
            MainMenu        mainMenu  = new();
            SubMenu         subMenu   = new();

            #region 依據資料庫內的紀錄,產生要顯示的功能表物件
            foreach (var item in menuDatas)
            {
                if (item.Level == 0)
                {
                    #region 第一層功能清單
                    mainMenu = new MainMenu()
                    {
                        IsSubMenu = item.IsGroup,
                        IsExpand  = false,
                        MenuData  = item
                    };
                    mainMenus.Add(mainMenu);
                    #endregion
                }
                else
                {
                    #region 第二層功能清單
                    subMenu = new SubMenu()
                    {
                        MenuData = item
                    };
                    mainMenu.SubMenus.Add(subMenu);
                    #endregion
                }
            }
            #endregion

            #region 加入鴻才管理者可以使用的功能表清單
            if (isHttc == true)
            {
                mainMenu = new MainMenu()
                {
                    IsSubMenu = true,
                    IsExpand  = false,
                    MenuData  = new()
                    {
                        Level     = 0,
                        Name      = "系統管理者",
                        Enable    = true,
                        ForceLoad = false,
                        Icon      = "mdi-apple-icloud",
                        CodeName  = "mdi-apple-icloud",
                        IsGroup   = true,
                    }
                };
                mainMenus.Add(mainMenu);

                #region 第二層功能清單
                subMenu = new SubMenu()
                {
                    MenuData = new MenuDataAdapterModel()
                    {
                        Name     = BAL.Helpers.MagicHelper.功能表角色功能名稱,
                        CodeName = "MenuRole",
                        Enable   = true,
                        Icon     = "mdi-menu",
                        IsGroup  = false,
                        Level    = 1,
                    }
                };
                mainMenu.SubMenus.Add(subMenu);
                subMenu = new SubMenu()
                {
                    MenuData = new MenuDataAdapterModel()
                    {
                        Name     = BAL.Helpers.MagicHelper.系統日誌功能名稱,
                        CodeName = "SystemLog",
                        Enable   = true,
                        Icon     = "mdi-message-processing",
                        IsGroup  = false,
                        Level    = 1,
                    }
                };
                mainMenu.SubMenus.Add(subMenu);
                subMenu = new SubMenu()
                {
                    MenuData = new MenuDataAdapterModel()
                    {
                        Name     = BAL.Helpers.MagicHelper.Excel匯入功能名稱,
                        CodeName = "Import",
                        Enable   = true,
                        Icon     = "mdi-database-import",
                        IsGroup  = false,
                        Level    = 1,
                    }
                };
                mainMenu.SubMenus.Add(subMenu);
                #endregion
            }
            #endregion

            #region 加入登出按鈕
            if (mainMenus.Count > 0)
            {
                mainMenu = new MainMenu()
                {
                    IsSubMenu = false,
                    IsExpand  = false,
                    MenuData  = new()
                    {
                        Level     = 0,
                        Name      = "登出",
                        Enable    = true,
                        ForceLoad = true,
                        Icon      = "mdi-logout",
                        CodeName  = "/Logout",
                        IsGroup   = false,
                    }
                };
                mainMenus.Add(mainMenu);
            }
            #endregion

            return(mainMenus);
        }
    }
예제 #2
0
        public async Task <List <MainMenu> > MakeMenuObjectAsync(bool isDeveloper)
        {
            #region 讀取該使用者角色的所有功能表清單
            var dataRequest = new DataRequest()
            {
                Sorted = new SortCondition()
                {
                    Id    = (int)MenuDataSortEnum.Default,
                    Title = "預設"
                },
                Skip = 0,
                Take = int.MaxValue
            };
            var allMenuData = await MenuDataService.GetByHeaderIDAsync(RoleId, dataRequest);

            var menuDatas = allMenuData.Result;
            menuDatas = menuDatas
                        .Where(x => x.Enable == true)
                        .OrderBy(x => x.Sequence).ToList();
            #endregion

            List <MainMenu> mainMenus = new();
            MainMenu        mainMenu  = new();
            SubMenu         subMenu   = new();

            #region 依據資料庫內的紀錄,產生要顯示的功能表物件
            foreach (var item in menuDatas)
            {
                if (item.CodeName.ToLower().Contains("http:") ||
                    item.CodeName.ToLower().Contains("https:"))
                {
                    item.NewTab = true;
                }
                if (item.Level == 0)
                {
                    #region 第一層功能清單
                    mainMenu = new MainMenu()
                    {
                        IsSubMenu = item.IsGroup,
                        IsExpand  = false,
                        MenuData  = item
                    };
                    if (mainMenu.IsSubMenu == true)
                    {
                        mainMenu.ExpandIcon = "mdi mdi-18px mdi-chevron-right";
                    }
                    else
                    {
                        mainMenu.ExpandIcon = "";
                    }
                    mainMenus.Add(mainMenu);
                    #endregion
                }
                else
                {
                    #region 第二層功能清單
                    subMenu = new SubMenu()
                    {
                        MenuData = item
                    };
                    mainMenu.SubMenus.Add(subMenu);
                    #endregion
                }
            }
            #endregion

            #region 加入開發者可以使用的功能表清單
            if (isDeveloper == true)
            {
                mainMenu = new MainMenu()
                {
                    IsSubMenu = true,
                    IsExpand  = false,
                    MenuData  = new()
                    {
                        Level     = 0,
                        Name      = "開發者專用",
                        Enable    = true,
                        ForceLoad = false,
                        Icon      = "mdi-apple-icloud",
                        CodeName  = "mdi-apple-icloud",
                        IsGroup   = true,
                    }
                };
                mainMenu.ExpandIcon = "mdi mdi-18px mdi-chevron-right";
                mainMenus.Add(mainMenu);

                #region 第二層功能清單
                #region 功能表角色功能名稱
                subMenu = new SubMenu()
                {
                    MenuData = new MenuDataAdapterModel()
                    {
                        Name     = BAL.Helpers.MagicHelper.功能表角色功能名稱,
                        CodeName = "MenuRole",
                        Enable   = true,
                        Icon     = "mdi-menu",
                        IsGroup  = false,
                        Level    = 1,
                    }
                };
                mainMenu.SubMenus.Add(subMenu);
                #endregion
                #region 系統日誌功能名稱
                subMenu = new SubMenu()
                {
                    MenuData = new MenuDataAdapterModel()
                    {
                        Name     = BAL.Helpers.MagicHelper.系統日誌功能名稱,
                        CodeName = "SystemLog",
                        Enable   = true,
                        Icon     = "mdi-message-processing",
                        IsGroup  = false,
                        Level    = 1,
                    }
                };
                mainMenu.SubMenus.Add(subMenu);
                #endregion
                #region Icons 圖示
                subMenu = new SubMenu()
                {
                    MenuData = new MenuDataAdapterModel()
                    {
                        Name     = "Icons 圖示",
                        CodeName = "https://pictogrammers.github.io/@mdi/font/5.8.55/",
                        Enable   = true,
                        Icon     = "mdi-family-tree",
                        IsGroup  = false,
                        Level    = 1, ForceLoad = true, NewTab = true,
                    }
                };
                mainMenu.SubMenus.Add(subMenu);
                #endregion
                #region Excel匯入功能名稱
                subMenu = new SubMenu()
                {
                    MenuData = new MenuDataAdapterModel()
                    {
                        Name     = BAL.Helpers.MagicHelper.Excel匯入功能名稱,
                        CodeName = "Import",
                        Enable   = true,
                        Icon     = "mdi-database-import",
                        IsGroup  = false,
                        Level    = 1,
                    }
                };
                mainMenu.SubMenus.Add(subMenu);
                #endregion
                #region SystemInfo
                subMenu = new SubMenu()
                {
                    MenuData = new MenuDataAdapterModel()
                    {
                        Name     = BAL.Helpers.MagicHelper.系統摘要資訊,
                        CodeName = "SystemInfo",
                        Enable   = true,
                        Icon     = "mdi-wifi-alert",
                        IsGroup  = false,
                        Level    = 1,
                    }
                };
                mainMenu.SubMenus.Add(subMenu);
                #endregion
                #endregion
            }
            #endregion

            #region 加入登出按鈕
            if (mainMenus.Count > 0)
            {
                mainMenu = new MainMenu()
                {
                    IsSubMenu = false,
                    IsExpand  = false,
                    MenuData  = new()
                    {
                        Level     = 0,
                        Name      = "登出",
                        Enable    = true,
                        ForceLoad = true,
                        NewTab    = false,
                        Icon      = "mdi-logout",
                        CodeName  = "/Logout",
                        IsGroup   = false,
                    }
                };
                mainMenus.Add(mainMenu);
            }
            #endregion

            return(mainMenus);
        }
    }