private static async Task FillUserDataForStateAsync(FindUserData data, AdminFindUserState stateToFillDataFor, string actionButtonText, string actionToPostTo, int roleIDWhichUsersToExclude = 0) { data.Roles = await SecurityGuiHelper.GetAllRolesAsync(); switch (stateToFillDataFor) { case AdminFindUserState.Start: // no-op break; case AdminFindUserState.UsersFound: data.FoundUsers = await UserGuiHelper.FindUsers(data.FilterOnRole, data.SelectedRoleID, data.FilterOnNickName, data.SpecifiedNickName, data.FilterOnEmailAddress, data.SpecifiedEmailAddress, roleIDWhichUsersToExclude); break; case AdminFindUserState.FinalAction: case AdminFindUserState.PostAction: data.SelectedUsers = await UserGuiHelper.GetAllUsersInRangeAsync(data.SelectedUserIDs); break; default: throw new ArgumentOutOfRangeException(nameof(stateToFillDataFor), stateToFillDataFor, null); } data.FindUserState = stateToFillDataFor; data.ActionButtonText = actionButtonText; data.ActionToPostTo = actionToPostTo; }
/// <summary> /// Finds the user specified in the filter. /// </summary> /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param> protected virtual void OnFind(EventArgs e) { if (!(chkFilterOnRole.Checked || chkFilterOnNickName.Checked || chkFilterOnEmailAddress.Checked)) { // nothing selected return; } UserCollection matchingUsers = UserGuiHelper.FindUsers(chkFilterOnRole.Checked, Convert.ToInt32(cbxRoles.SelectedValue), chkFilterOnNickName.Checked, tbxNickName.Text.Trim(), chkFilterOnEmailAddress.Checked, tbxEmailAddress.Text.Trim()); lbxMatchingUsers.DataSource = matchingUsers; lbxMatchingUsers.DataTextField = "NickName"; lbxMatchingUsers.DataValueField = "UserID"; lbxMatchingUsers.DataBind(); phSearchResults.Visible = true; btnSelect.Enabled = (matchingUsers.Count > 0); }