コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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();
        }