protected void btnAssignPermission_Click1(object sender, EventArgs e) { if (!Validated()) { return; } int channelID = 1; string userID = lblUserName.Text; int roleID = Int32.Parse(lbxRole.SelectedValue); Business.User user = new Business.User(); //gán dữ liệu cho bảng channel_user Channel_UserRow cur = new Channel_UserRow(); cur.Channel_ID = channelID; cur.User_ID = userID; //--------------------------------- //gán dữ liệu cho bảng channel_user_role Channel_User_RoleRow curr = new Channel_User_RoleRow(); curr.Role_ID = roleID; //---------------------------------- using (MainDB db = new MainDB()) { //Kiểm tra xem user đã tồn tại trong kênh này chưa Channel_UserRow[] chanU = db.Channel_UserCollection.GetAsArray("User_ID='" + userID + "' and Channel_ID=" + channelID, ""); //nếu đã tồn tại thì lấy ID của bảng channel_user gán vào bảng channel_user_role if (chanU != null && chanU.Length > 0) { curr.CU_ID = chanU[0].CU_ID; } else // nếu chưa tồn tại thì insert 1 bản ghi vào bảng channel_user sau đó lấy ID gán vào channel_user_role { //inssert dữ liệu vào bảng channel_user db.Channel_UserCollection.Insert(cur); //gán ID của channel_user_role bằng id vừa thêm vào curr.CU_ID = cur.CU_ID; } //Kiểm tra xem người dùng ở kênh này đã có role này chưa DataTable dtChannelUserRole = user.GetChannelUserRole(userID, channelID, roleID); int CUR_ID = -1; if (dtChannelUserRole != null && dtChannelUserRole.Rows.Count > 0) { CUR_ID = Convert.ToInt32(dtChannelUserRole.Rows[0][0]); } else { //gán channel_user vào role db.Channel_User_RoleCollection.Insert(curr); } //nếu gán cho các role không phải là quản trị kênh thì gán đầy đủ quyền và chuyên mục if (lbxRole.SelectedValue != RoleConst.QuanTriKenh.ToString()) { User_PermissionRow upr; User_CategoryRow ucr; //duyệt qua các item của chuyên mục foreach (ListItem li in clbCategory.Items) { //nếu chuyện mục nào được chọn thì gán cho chuyên mục đó if (li.Selected) { upr = new User_PermissionRow(); //nếu không tồn tại role này thì lấy giá trị gán theo role mới if (CUR_ID == -1) { upr.CUR_ID = curr.CUR_ID; } else // nếu đã tồn tại role này thì lấy giá trị role này luôn. { upr.CUR_ID = CUR_ID; } //duyệt qua các item của quyền foreach (ListItem liPermission in clbPermission.Items) { //nếu quyền nào được chọn thì gán cho quyền đó if (liPermission.Selected) { upr.Permission_ID = Int32.Parse(liPermission.Value); //gán vào bảng permission db.User_PermissionCollection.Insert(upr); ucr = new User_CategoryRow(); ucr.UP_ID = upr.UP_ID; ucr.Cat_ID = Int32.Parse(li.Value); //gán user permission vào categorry db.User_CategoryCollection.Insert(ucr); } } } } } //khi gán quyền sẽ đặt acive cho user = true UserRow ur = db.UserCollection.GetByPrimaryKey(userID); if (!ur.User_isActive) { ur.User_isActive = true; db.UserCollection.Update(ur); } } lblMessage.Text = "Gán thành công"; ResetCategory(); LoadLtsBox(); //Response.Redirect("/users/userassign.aspx"); DFISYS.BO.Editoral.Category.CategoryHelper.CleanCacheCategory(); DFISYS.BO.Editoral.Category.CategoryHelper.CleanCachePermission(); //GetPermission1_ }