protected void GetUserGroupDataSource(object sender, ObjectDataSourceEventArgs e) { if (_dataSource == null) { _dataSource = new UserGroupDataSource(); _dataSource.UserGroupFoundSet += delegate(IList <UserGroupRowData> newlist) { _userGroupRows = newlist; }; } e.ObjectInstance = _dataSource; if (DataSourceCreated != null) { DataSourceCreated(_dataSource); } }
protected void IsInGroup_CheckedChanged(object sender, EventArgs e) { CheckBox isInGroup = (CheckBox)sender; GridViewRow row = (GridViewRow)isInGroup.NamingContainer; GridView grid = row.NamingContainer as GridView; int dataItemIndex = (row.DataItemIndex - (grid.PageSize * grid.PageIndex)); int userId = (int)grid.DataKeys[dataItemIndex].Value; User user = UserDataSource.Load(userId); CommerceBuilder.Users.Group group = GroupDataSource.Load(_GroupId); UserGroup userGroup = UserGroupDataSource.Load(user.Id, group.Id); if (userGroup == null) { userGroup = new UserGroup(user, group); } int index = user.UserGroups.IndexOf(userGroup); if (isInGroup.Checked) { //IN ROLE WAS CHECKED, ADD ROLE IF NOT FOUND if (index < 0) { user.UserGroups.Add(userGroup); user.UserGroups.Save(); AbleContext.Current.Database.FlushSession(); } } else { //IN ROLE WAS UNCHECKED, DELETE ROLE IF FOUND if (index > -1) { user.UserGroups.DeleteAt(index); } } //REBIND GRIDS BindSearchPanel(); }