Beispiel #1
0
        public C_USER_PRIVILEGE GetDataObject()
        {
            C_USER_PRIVILEGE DataObject = new C_USER_PRIVILEGE();

            DataObject.ID           = this.ID;
            DataObject.SYSTEM_NAME  = this.SYSTEM_NAME;
            DataObject.USER_ID      = this.USER_ID;
            DataObject.PRIVILEGE_ID = this.PRIVILEGE_ID;
            DataObject.EDIT_TIME    = this.EDIT_TIME;
            DataObject.EDIT_EMP     = this.EDIT_EMP;
            return(DataObject);
        }
        /// <summary>
        /// 使用遞歸給用戶添加權限以及上層權限
        /// </summary>
        /// <param name="EmpNo"></param>
        /// <param name="user"></param>
        /// <param name="PrivilegeId"></param>
        /// <param name="Bu"></param>
        /// <param name="SystemName"></param>
        /// <param name="EditEmp"></param>
        /// <param name="Counter"></param>
        /// <param name="DB"></param>
        public void Add(string EmpNo, C_USER user, string PrivilegeId, string Bu, string SystemName, string EditEmp, ref Int32 Counter, OleExec DB)
        {
            if (user == null)
            {
                List <C_USER> Users = DB.ORM.Queryable <C_USER>().Where(u => u.EMP_NO == EmpNo).ToList();
                if (Users.Count > 0)
                {
                    user = Users.First();
                }
                else
                {
                    return;
                }
            }

            bool exist = DB.ORM.Queryable <C_USER_PRIVILEGE>().Where(up => up.USER_ID == user.ID && up.PRIVILEGE_ID == PrivilegeId).Any();

            if (!exist)
            {
                List <C_PRIVILEGE> ParentPrivileges = DB.ORM.Queryable <C_PRIVILEGE, C_MENU, C_PRIVILEGE>((p1, c1, p2) => p1.MENU_ID == c1.ID && c1.PARENT_CODE == p2.MENU_ID)
                                                      .Where((p1, c1, p2) => p1.ID == PrivilegeId).Select((p1, c1, p2) => p2).ToList();
                foreach (C_PRIVILEGE p in ParentPrivileges)
                {
                    Add(EmpNo, user, p.ID, Bu, SystemName, EditEmp, ref Counter, DB);
                }
                C_USER_PRIVILEGE up = new C_USER_PRIVILEGE()
                {
                    ID           = GetNewID(Bu, DB),
                    USER_ID      = user.ID,
                    PRIVILEGE_ID = PrivilegeId,
                    SYSTEM_NAME  = SystemName,
                    EDIT_TIME    = GetDBDateTime(DB),
                    EDIT_EMP     = EditEmp
                };
                Counter += DB.ORM.Insertable <C_USER_PRIVILEGE>(up).ExecuteCommand();
                //Counter +=DB.ORM.Insertable(up).ExecuteCommand();
            }
        }