static public void Main()
        {
            // Init 會議室預約模組Panel
            //BookingRoomAdmin ba = new BookingRoomAdmin();
            //MotherForm.AddPanel(BookingRoomAdmin.Instance);

            #region Init UDT

            ConfigData cd       = K12.Data.School.Configuration["場地預約模組載入設定"];
            bool       checkUDT = false;
            string     name     = "場地預約UDT是否已載入";

            //如果尚無設定值,預設為
            if (string.IsNullOrEmpty(cd[name]))
            {
                cd[name] = "false";
            }

            //檢查是否為布林
            bool.TryParse(cd[name], out checkUDT);

            if (!checkUDT)
            {
                AccessHelper access = new AccessHelper();
                access.Select <UDT.MeetingRoom>("UID = '00000'");
                access.Select <UDT.MeetingRoomEquipment>("UID = '00000'");
                access.Select <UDT.MeetingRoomUnit>("UID = '00000'");
                access.Select <UDT.MeetingRoomUnitAdmin>("UID = '00000'");
                access.Select <UDT.MeetingRoomSystemAdmin>("UID = '00000'");
                access.Select <UDT.MeetingRoomApplication>("UID = '00000'");
                access.Select <UDT.MeetingRoomApplicationDetail>("UID = '00000'");

                cd[name] = "true";
                cd.Save();
            }

            #endregion

            #region Init Role
            {
                #region 建立會議室預約單位管理員角色
                if (!DAO.Role.CheckRoleIsExist(_roleUnitAdminName))
                {
                    _roleUnitAdminID = DAO.Role.InsertRole(_roleUnitAdminName, _unitAdminPermission); // 建立角色
                }
                else
                {
                    DAO.Role.UpdateRole(_roleUnitAdminID, _unitAdminPermission); // 更新角色
                }

                #endregion

                #region 建立會議室預約單位主管角色
                if (!DAO.Role.CheckRoleIsExist(_roleUnitBossName))
                {
                    _roleUnitBossID = DAO.Role.InsertRole(_roleUnitBossName, _unitBossPermission); // 建立角色
                }
                else
                {
                    DAO.Role.UpdateRole(_roleUnitBossID, _unitBossPermission);  // 更新角色
                }
                #endregion

                #region 建立會議室預約管理員角色
                if (!DAO.Role.CheckRoleIsExist(_roleAdminName))
                {
                    _roleAdminID = DAO.Role.InsertRole(_roleAdminName, _permission); // 建立角色
                }
                else
                {
                    DAO.Role.UpdateRole(_roleAdminID, _permission);  // 更新角色
                }
                #endregion
            }
            #endregion

            #region 匯入的驗證規則
            {
                FactoryProvider.FieldFactory.Add(new MeetingRoomFieldValidatorFactory());
                FactoryProvider.RowFactory.Add(new MeetingRoomRowValidatorFactory());
            }
            #endregion

            #region 會議室預約
            {
                // 取得登入帳號身分
                Actor actor = Actor.Instance;

                //2021-12-15 Cynthia 因原先操作指南無法在x64版本上作為背景載入,故參考俊威的意見,將操作指南另外用一個button點擊開啟。
                MotherForm.RibbonBarItems["會議室預約", "使用說明"]["操作指南"].Image = Properties.Resources._03;
                MotherForm.RibbonBarItems["會議室預約", "使用說明"]["操作指南"].Size  = RibbonBarButton.MenuButtonSize.Large;
                #region 操作指南
                {
                    MotherForm.RibbonBarItems["會議室預約", "使用說明"]["操作指南"].Click += delegate
                    {
                        System.Diagnostics.Process.Start("https://sites.google.com/ischool.com.tw/facilities-service/%E9%A6%96%E9%A0%81");
                    };
                }
                #endregion
                MotherForm.RibbonBarItems["會議室預約", "基本設定"]["會議室管理"].Size      = RibbonBarButton.MenuButtonSize.Large;
                MotherForm.RibbonBarItems["會議室預約", "基本設定"]["會議室管理"].Image     = Properties.Resources.architecture_config_64;
                MotherForm.RibbonBarItems["會議室預約", "基本設定"]["設定管理單位"].Size     = RibbonBarButton.MenuButtonSize.Medium;
                MotherForm.RibbonBarItems["會議室預約", "基本設定"]["設定管理單位"].Image    = Properties.Resources.meeting_config_64;
                MotherForm.RibbonBarItems["會議室預約", "基本設定"]["設定單位管理員"].Size    = RibbonBarButton.MenuButtonSize.Medium;
                MotherForm.RibbonBarItems["會議室預約", "基本設定"]["設定單位管理員"].Image   = Properties.Resources.foreign_language_config_64;
                MotherForm.RibbonBarItems["會議室預約", "資料統計"]["匯出"].Size         = RibbonBarButton.MenuButtonSize.Large;
                MotherForm.RibbonBarItems["會議室預約", "資料統計"]["匯出"].Image        = Properties.Resources.Export_Image;
                MotherForm.RibbonBarItems["會議室預約", "資料統計"]["匯入"].Size         = RibbonBarButton.MenuButtonSize.Large;
                MotherForm.RibbonBarItems["會議室預約", "資料統計"]["匯入"].Image        = Properties.Resources.Import_Image;
                MotherForm.RibbonBarItems["會議室預約", "資料統計"]["報表"].Size         = RibbonBarButton.MenuButtonSize.Large;
                MotherForm.RibbonBarItems["會議室預約", "資料統計"]["報表"].Image        = Properties.Resources.Report;
                MotherForm.RibbonBarItems["會議室預約", "會議室預約作業"]["審核預約紀錄"].Size  = RibbonBarButton.MenuButtonSize.Large;
                MotherForm.RibbonBarItems["會議室預約", "會議室預約作業"]["審核預約紀錄"].Image = Properties.Resources.document_ok_64;

                #region 會議室管理
                {
                    MotherForm.RibbonBarItems["會議室預約", "基本設定"]["會議室管理"].Enable = Permissions.管理會議室權限;
                    MotherForm.RibbonBarItems["會議室預約", "基本設定"]["會議室管理"].Click += delegate
                    {
                        MeetingRoomManagement form = new MeetingRoomManagement();
                        form.ShowDialog();
                    };
                }
                #endregion

                #region 設定管理單位
                {
                    MotherForm.RibbonBarItems["會議室預約", "基本設定"]["設定管理單位"].Enable = Permissions.設定會議室管理單位權限;
                    MotherForm.RibbonBarItems["會議室預約", "基本設定"]["設定管理單位"].Click += delegate
                    {
                        ManageUnitForm form = new ManageUnitForm();
                        form.ShowDialog();
                    };
                }
                #endregion

                #region 設定單位管理員
                {
                    MotherForm.RibbonBarItems["會議室預約", "基本設定"]["設定單位管理員"].Enable = Permissions.設定單位管理員權限;
                    MotherForm.RibbonBarItems["會議室預約", "基本設定"]["設定單位管理員"].Click += delegate
                    {
                        ManageUnitAdminForm form = new ManageUnitAdminForm();
                        form.ShowDialog();
                    };
                }
                #endregion

                #region 匯出場地清單
                {
                    MotherForm.RibbonBarItems["會議室預約", "資料統計"]["匯出"]["會議室清單"].Enable = Permissions.匯出會議室清單權限;
                    MotherForm.RibbonBarItems["會議室預約", "資料統計"]["匯出"]["會議室清單"].Click += delegate
                    {
                        ExportMeetingRoomForm form = new ExportMeetingRoomForm();
                        form.ShowDialog();
                    };
                }
                #endregion

                #region 匯入場地清單
                {
                    MotherForm.RibbonBarItems["會議室預約", "資料統計"]["匯入"]["會議室清單"].Enable = Permissions.匯入會議室清單權限;
                    MotherForm.RibbonBarItems["會議室預約", "資料統計"]["匯入"]["會議室清單"].Click += delegate
                    {
                        new ImportMeetingRoomData().Execute();
                    };
                }
                #endregion

                #region 統計場地使用狀況
                {
                    MotherForm.RibbonBarItems["會議室預約", "資料統計"]["報表"]["統計會議室使用狀況"].Enable = Permissions.統計會議室使用狀況權限;
                    MotherForm.RibbonBarItems["會議室預約", "資料統計"]["報表"]["統計會議室使用狀況"].Click += delegate
                    {
                        StatisticalReportForm form = new StatisticalReportForm();
                        form.ShowDialog();
                    };
                }
                #endregion

                #region 審核作業
                {
                    MotherForm.RibbonBarItems["會議室預約", "會議室預約作業"]["審核預約紀錄"].Enable = Permissions.審核作業權限;
                    MotherForm.RibbonBarItems["會議室預約", "會議室預約作業"]["審核預約紀錄"].Click += delegate
                    {
                        ReviewForm form = new ReviewForm();
                        form.ShowDialog();
                    };
                }
                #endregion

                #region  限管理
                Catalog detail = new Catalog();
                detail = RoleAclSource.Instance["會議室預約"]["功能按鈕"];
                detail.Add(new RibbonFeature(Permissions.會議室管理單位, "設定會議室管理單位"));
                detail.Add(new RibbonFeature(Permissions.管理會議室, "管理會議室"));
                //detail.Add(new RibbonFeature(Permissions.系統管理員,"系統管理員")); ---已廢除此功能
                detail.Add(new RibbonFeature(Permissions.單位管理員, "設定單位管理員"));
                detail.Add(new RibbonFeature(Permissions.審核作業, "審核作業"));
                detail.Add(new RibbonFeature(Permissions.匯入會議室清單, "匯入會議室清單"));
                detail.Add(new RibbonFeature(Permissions.匯出會議室清單, "匯出會議室清單"));
                detail.Add(new RibbonFeature(Permissions.統計會議室使用狀況, "統計會議室使用狀況"));
                #endregion
            }
            #endregion
        }
Exemple #2
0
        static public void Main()
        {
            // Init 會議室預約模組Panel
            BookingRoomAdmin ba = new BookingRoomAdmin();

            MotherForm.AddPanel(BookingRoomAdmin.Instance);

            #region Init UDT

            ConfigData cd       = K12.Data.School.Configuration["場地預約模組載入設定"];
            bool       checkUDT = false;
            string     name     = "場地預約UDT是否已載入";

            //如果尚無設定值,預設為
            if (string.IsNullOrEmpty(cd[name]))
            {
                cd[name] = "false";
            }

            //檢查是否為布林
            bool.TryParse(cd[name], out checkUDT);

            if (!checkUDT)
            {
                AccessHelper access = new AccessHelper();
                access.Select <UDT.MeetingRoom>("UID = '00000'");
                access.Select <UDT.MeetingRoomEquipment>("UID = '00000'");
                access.Select <UDT.MeetingRoomUnit>("UID = '00000'");
                access.Select <UDT.MeetingRoomUnitAdmin>("UID = '00000'");
                access.Select <UDT.MeetingRoomSystemAdmin>("UID = '00000'");
                access.Select <UDT.MeetingRoomApplication>("UID = '00000'");
                access.Select <UDT.MeetingRoomApplicationDetail>("UID = '00000'");

                cd[name] = "true";
                cd.Save();
            }

            #endregion

            #region Init Role
            {
                #region 建立會議室預約模組管理者專用角色
                if (!DAO.Role.CheckRoleIsExist(_roleAdminName))
                {
                    _roleAdminID = DAO.Role.InsertRole(_roleAdminName); // 建立角色
                }
                else
                {
                    DAO.Role.UpdateRole(_roleAdminID); // 更新角色
                }

                #endregion

                #region 建立會議室預約專用角色
                if (!DAO.Role.CheckRoleIsExist(_roleName))
                {
                    _roleID = DAO.Role.InsertRole(_roleName); // 建立角色
                }
                else
                {
                    DAO.Role.UpdateRole(_roleID);  // 更新角色
                }
                #endregion
            }
            #endregion

            #region 匯入的驗證規則
            {
                FactoryProvider.FieldFactory.Add(new MeetingRoomFieldValidatorFactory());
                FactoryProvider.RowFactory.Add(new MeetingRoomRowValidatorFactory());
            }
            #endregion

            #region 會議室預約
            {
                // 取得登入帳號身分
                Actor actor = Actor.Instance;

                MotherForm.RibbonBarItems["會議室預約", "基本設定"]["會議室管理"].Size      = RibbonBarButton.MenuButtonSize.Large;
                MotherForm.RibbonBarItems["會議室預約", "基本設定"]["會議室管理"].Image     = Properties.Resources.architecture_config_64;
                MotherForm.RibbonBarItems["會議室預約", "基本設定"]["設定管理單位"].Size     = RibbonBarButton.MenuButtonSize.Medium;
                MotherForm.RibbonBarItems["會議室預約", "基本設定"]["設定管理單位"].Image    = Properties.Resources.meeting_config_64;
                MotherForm.RibbonBarItems["會議室預約", "基本設定"]["設定單位管理員"].Size    = RibbonBarButton.MenuButtonSize.Medium;
                MotherForm.RibbonBarItems["會議室預約", "基本設定"]["設定單位管理員"].Image   = Properties.Resources.foreign_language_config_64;
                MotherForm.RibbonBarItems["會議室預約", "資料統計"]["匯出"].Size         = RibbonBarButton.MenuButtonSize.Large;
                MotherForm.RibbonBarItems["會議室預約", "資料統計"]["匯出"].Image        = Properties.Resources.Export_Image;
                MotherForm.RibbonBarItems["會議室預約", "資料統計"]["匯入"].Size         = RibbonBarButton.MenuButtonSize.Large;
                MotherForm.RibbonBarItems["會議室預約", "資料統計"]["匯入"].Image        = Properties.Resources.Import_Image;
                MotherForm.RibbonBarItems["會議室預約", "資料統計"]["報表"].Size         = RibbonBarButton.MenuButtonSize.Large;
                MotherForm.RibbonBarItems["會議室預約", "資料統計"]["報表"].Image        = Properties.Resources.Report;
                MotherForm.RibbonBarItems["會議室預約", "會議室預約作業"]["審核預約紀錄"].Size  = RibbonBarButton.MenuButtonSize.Large;
                MotherForm.RibbonBarItems["會議室預約", "會議室預約作業"]["審核預約紀錄"].Image = Properties.Resources.document_ok_64;

                #region 會議室管理
                {
                    MotherForm.RibbonBarItems["會議室預約", "基本設定"]["會議室管理"].Enable = Permissions.管理會議室權限;
                    MotherForm.RibbonBarItems["會議室預約", "基本設定"]["會議室管理"].Click += delegate
                    {
                        if (actor.isSysAdmin() || actor.isUnitAdmin() || actor.isUnitBoss())
                        {
                            MeetingRoomManagement form = new MeetingRoomManagement();
                            form.ShowDialog();
                        }
                        else
                        {
                            MsgBox.Show("此帳號沒有管理會議室權限!");
                        }
                    };
                }
                #endregion

                #region 設定管理單位
                {
                    MotherForm.RibbonBarItems["會議室預約", "基本設定"]["設定管理單位"].Enable = Permissions.設定會議室管理單位權限;
                    MotherForm.RibbonBarItems["會議室預約", "基本設定"]["設定管理單位"].Click += delegate
                    {
                        if (actor.isSysAdmin())
                        {
                            ManageUnitForm form = new ManageUnitForm();
                            form.ShowDialog();
                        }
                        else
                        {
                            MsgBox.Show("此帳號沒有設定會議室管理單位權限");
                        }
                    };
                }
                #endregion

                #region 設定單位管理員
                {
                    MotherForm.RibbonBarItems["會議室預約", "基本設定"]["設定單位管理員"].Enable = Permissions.設定單位管理員權限;
                    MotherForm.RibbonBarItems["會議室預約", "基本設定"]["設定單位管理員"].Click += delegate
                    {
                        if (actor.isSysAdmin())
                        {
                            ManageUnitAdminForm form = new ManageUnitAdminForm();
                            form.ShowDialog();
                        }
                        else if (actor.isUnitBoss())
                        {
                            ManageUnitAdminForm form = new ManageUnitAdminForm();
                            form.ShowDialog();
                        }
                        else
                        {
                            MsgBox.Show("此帳號沒有設定單位管理員權限");
                        }
                    };
                }
                #endregion

                #region 匯出場地清單
                {
                    MotherForm.RibbonBarItems["會議室預約", "資料統計"]["匯出"]["會議室清單"].Enable = Permissions.匯出會議室清單權限;
                    MotherForm.RibbonBarItems["會議室預約", "資料統計"]["匯出"]["會議室清單"].Click += delegate
                    {
                        if (actor.isSysAdmin() || actor.isUnitBoss() || actor.isUnitAdmin())
                        {
                            ExportMeetingRoomForm form = new ExportMeetingRoomForm();
                            form.ShowDialog();
                        }
                        else
                        {
                            MsgBox.Show("此帳號沒有使用權限!");
                        }
                    };
                }
                #endregion

                #region 匯入場地清單
                {
                    MotherForm.RibbonBarItems["會議室預約", "資料統計"]["匯入"]["會議室清單"].Enable = Permissions.匯入會議室清單權限;
                    MotherForm.RibbonBarItems["會議室預約", "資料統計"]["匯入"]["會議室清單"].Click += delegate
                    {
                        if (actor.isSysAdmin() || actor.isUnitBoss() || actor.isUnitAdmin())
                        {
                            new ImportMeetingRoomData().Execute();
                        }
                        else
                        {
                            MsgBox.Show("此帳號沒有使用權限!");
                        }
                    };
                }
                #endregion

                #region 統計場地使用狀況
                {
                    MotherForm.RibbonBarItems["會議室預約", "資料統計"]["報表"]["統計會議室使用狀況"].Enable = Permissions.統計會議室使用狀況權限;
                    MotherForm.RibbonBarItems["會議室預約", "資料統計"]["報表"]["統計會議室使用狀況"].Click += delegate
                    {
                        if (actor.isSysAdmin() || actor.isUnitBoss() || actor.isUnitAdmin())
                        {
                            StatisticalReportForm form = new StatisticalReportForm();
                            form.ShowDialog();
                        }
                        else
                        {
                            MsgBox.Show("此帳號沒有使用權限!");
                        }
                    };
                }
                #endregion

                #region 審核作業
                {
                    MotherForm.RibbonBarItems["會議室預約", "會議室預約作業"]["審核預約紀錄"].Enable = Permissions.審核作業權限;
                    MotherForm.RibbonBarItems["會議室預約", "會議室預約作業"]["審核預約紀錄"].Click += delegate
                    {
                        if (actor.isSysAdmin() || actor.isUnitBoss() || actor.isUnitAdmin())
                        {
                            ReviewForm form = new ReviewForm();
                            form.ShowDialog();
                        }
                        else
                        {
                            MsgBox.Show("此帳號沒有使用權限!");
                        }
                    };
                }
                #endregion

                #region  限管理
                Catalog detail = new Catalog();
                detail = RoleAclSource.Instance["會議室預約"]["功能按鈕"];
                detail.Add(new RibbonFeature(Permissions.會議室管理單位, "設定會議室管理單位"));
                detail.Add(new RibbonFeature(Permissions.管理會議室, "管理會議室"));
                //detail.Add(new RibbonFeature(Permissions.系統管理員,"系統管理員")); ---已廢除此功能
                detail.Add(new RibbonFeature(Permissions.單位管理員, "設定單位管理員"));
                detail.Add(new RibbonFeature(Permissions.審核作業, "審核作業"));
                detail.Add(new RibbonFeature(Permissions.匯入會議室清單, "匯入會議室清單"));
                detail.Add(new RibbonFeature(Permissions.匯出會議室清單, "匯出會議室清單"));
                detail.Add(new RibbonFeature(Permissions.統計會議室使用狀況, "統計會議室使用狀況"));
                #endregion
            }
            #endregion
        }