private void searchButton_Click(object sender, EventArgs e) { ClearPriorResults(); var checkedGenderButtonName = GenderPanel.Controls.OfType <RadioButton>() .First(radio => radio.Checked).Name; var checkedRankButtonName = RankPanel.Controls.OfType <RadioButton>() .First(radio => radio.Checked).Name; var selectedCategoryValue = CategoryPanel.Controls.OfType <ComboBox>() .Single().SelectedValue as int?; var ageCategoryButtonText = AgePanel.Controls.OfType <RadioButton>() .First(radio => radio.Checked).Text; var clubMembershipButtonText = MembershipPanel.Controls.OfType <RadioButton>() .First(radio => radio.Checked).Text; int?ageMax; var ageMin = GetAgeMinAndMax(ageCategoryButtonText, out ageMax); int?rankMax; var rankMin = GetRankMinAndMax(checkedRankButtonName, out rankMax); var sql = m_searchService.BuildSql(checkedRankButtonName, rankMin, rankMax, checkedGenderButtonName, selectedCategoryValue, ageCategoryButtonText, ageMin, ageMax, clubMembershipButtonText); var grid = m_searchService.Search(sql); AddSendEmailButton(); StyleResultsGrid(grid); resultsPanel.Controls.Add(grid); }