/* * CREATED: H. Conant MAR 13 2018 * * RetrieveContactRequests_Click() * This method runs any code it contains when the "Retrieve Contact Requests" button is clicked. * * PARAMETERS: * object sender - object on the page that is being targeted * EventArgs e - event that has triggered the method * * RETURNS: * void - Nothing is returned * * METHOD CALLS: * List<int>() * List<string>() * DateTime() * List<bool>() * .Parse() * .FindControl() * .Add() * List<ContactRequestDTO>() * .ViewContactRequests() * .DataBind() */ protected void RetrieveContactRequests_Click(object sender, EventArgs e) { UserMessage.Text = ""; List <int> unitIds = new List <int>(); List <string> genders = new List <string>(); List <string> ages = new List <string>(); DateTime dateOne = new DateTime(); DateTime dateTwo = new DateTime(); List <bool> statuses = new List <bool>(); dateOne = DateTime.Parse(dateStart.Value); dateTwo = DateTime.Parse(dateEnd.Value); if (dateOne == null || dateTwo == null || dateOne > dateTwo) { UserMessage.Text = "Please enter a vaild start and end date"; } else { foreach (RepeaterItem item in UnitRepeater.Items) { CheckBox tempCheckBox = (CheckBox)item.FindControl("CheckBox"); HiddenField tempHiddenField = (HiddenField)item.FindControl("HiddenUnitID"); if (tempCheckBox.Checked == true) { int tempUntId; int.TryParse(tempHiddenField.Value, out tempUntId); unitIds.Add(tempUntId); } } if (unitIds.Count < 1) { UserMessage.Text = "Please select at least one unit"; } else { if (GenderFemale.Checked == true) { genders.Add("F"); } if (GenderMale.Checked == true) { genders.Add("M"); } if (GenderOther.Checked == true) { genders.Add("O"); } if (GenderPrefNotAns.Checked == true) { genders.Add("N"); } if (genders.Count < 1) { UserMessage.Text = "Please select at least one gender"; } else { if (Age017.Checked == true) { ages.Add("0-17"); } if (Age1834.Checked == true) { ages.Add("18-34"); } if (Age3554.Checked == true) { ages.Add("35-54"); } if (Age5574.Checked == true) { ages.Add("55-74"); } if (Age75.Checked == true) { ages.Add("75+"); } if (Age0.Checked == true) { ages.Add("0"); } if (ages.Count < 1) { UserMessage.Text = "Please select at least one age range"; } else { if (ProcessedY.Checked == true) { statuses.Add(true); } if (ProcessedN.Checked == true) { statuses.Add(false); } if (statuses.Count < 1) { UserMessage.Text = "Please select at least 'Processed' or 'Not processed'"; } else { try { List <ContactRequestDTO> contactRequests = new List <ContactRequestDTO>(); contactRequests = surveyController.ViewContactRequests(unitIds, genders, ages, dateOne, dateTwo, statuses); if (contactRequests.Count < 1) { UserMessage.Text = "There are no contact requests that match the filers."; } else { ResultCountLabel.Text = (contactRequests.Count).ToString(); ContactRequestsRepeater.DataSource = contactRequests; ContactRequestsRepeater.DataBind(); } } catch (Exception ex) { ErrorMessage.Text = "Retrieve contact requests failed. Please contact the system administrator."; } } } } } } }
/* * CREATED: H. Conant MAR 13 2018 * MODIFIED: A. Valberg MAR 28 2018 * -Updated fields after adding 2 tables (agegroup & gender) * MODIFIED: H. Conant MAR 31 2018 * -Updated gender and age to repeaters and ODSes * * RetrieveContactRequests_Click() * This method runs any code it contains when the "Retrieve Contact Requests" button is clicked. * * PARAMETERS: * object sender - object on the page that is being targeted * EventArgs e - event that has triggered the method * * RETURNS: * void * * ODEV METHOD CALLS: * MessageUserControl.ShowInfoList() * SurveyController.ViewContactRequests() * MessageUserControl.ShowInfoMessage() * MessageUserControl.ShowErrorMessage() */ protected void RetrieveContactRequests_Click(object sender, EventArgs e) { ResultCountLabel.Text = "0"; List <string> message = new List <string>(); ContactRequestsRepeater.DataSource = null; ContactRequestsRepeater.DataBind(); List <int> unitIds = new List <int>(); List <int> genders = new List <int>(); List <int> respodentIds = new List <int>(); List <int> ages = new List <int>(); DateTime dateOne = new DateTime(); DateTime dateTwo = new DateTime(); List <bool> statuses = new List <bool>(); string pattern = @"^$|^(0[1-9]|1[012])[/](0[1-9]|[12][0-9]|3[01])[/][0-9]{4}$"; Regex reg = new Regex(pattern); Match properStartDateFormat = reg.Match(dateStart.Value); Match properEndDateFormat = reg.Match(dateEnd.Value); if (!properStartDateFormat.Success || !properEndDateFormat.Success) { message.Add("Please enter valid date(s) using the pattern mm/dd/yyyy or leave the date fields blank."); } else { if (dateStart.Value != "") { if (DateTime.TryParse(dateStart.Value, out dateOne) == false) { message.Add("Please enter a valid start date value or leave it blank."); } } if (dateEnd.Value != "") { if (DateTime.TryParse(dateEnd.Value, out dateTwo) == false) { message.Add("Please enter a valid end date value or leave it blank."); } } } if (dateStart.Value != "" && dateEnd.Value != "" && dateOne > dateTwo) { message.Add("Please ensure that the provided end date occurs after or on the same day as the provided start date."); } if (dateTwo > DateTime.Today || dateOne > DateTime.Today) { message.Add("Please select dates that are on or before today's date."); } foreach (RepeaterItem item in UnitRepeater.Items) { CheckBox tempCheckBox = (CheckBox)item.FindControl("CheckBox"); HiddenField tempHiddenField = (HiddenField)item.FindControl("HiddenUnitID"); if (tempCheckBox.Text.Length > 10) { tempCheckBox = (CheckBox)item.FindControl("CheckBox1"); } if (tempCheckBox.Checked == true) { int tempUntId; int.TryParse(tempHiddenField.Value, out tempUntId); unitIds.Add(tempUntId); } } if (unitIds.Count < 1) { message.Add("Please select at least one unit to filter by."); } foreach (RepeaterItem item in GenderRepeater.Items) { CheckBox tempCheckBox = (CheckBox)item.FindControl("CheckBox"); HiddenField tempHiddenField = (HiddenField)item.FindControl("HiddenGenderID"); if (tempCheckBox.Text.Length > 10) { tempCheckBox = (CheckBox)item.FindControl("CheckBox1"); } if (tempCheckBox.Checked == true) { int tempGenderId; int.TryParse(tempHiddenField.Value, out tempGenderId); genders.Add(tempGenderId); } } if (genders.Count < 1) { message.Add("Please select at least one gender to filter by."); } foreach (RepeaterItem item in RespondentTypeRepeater.Items) { CheckBox tempCheckBox = (CheckBox)item.FindControl("CheckBox"); HiddenField tempHiddenField = (HiddenField)item.FindControl("HiddenRespondentID"); if (tempCheckBox.Text.Length > 10) { tempCheckBox = (CheckBox)item.FindControl("CheckBox1"); } if (tempCheckBox.Checked == true) { int tempUntId; int.TryParse(tempHiddenField.Value, out tempUntId); respodentIds.Add(tempUntId); } } if (respodentIds.Count < 1) { message.Add("Please select at least one respondent type to filter by."); } foreach (RepeaterItem item in AgeRepeater.Items) { CheckBox tempCheckBox = (CheckBox)item.FindControl("CheckBox"); HiddenField tempHiddenField = (HiddenField)item.FindControl("HiddenAgeGroupID"); if (tempCheckBox.Text.Length > 10) { tempCheckBox = (CheckBox)item.FindControl("CheckBox1"); } if (tempCheckBox.Checked == true) { int tempAgeId; int.TryParse(tempHiddenField.Value, out tempAgeId); ages.Add(tempAgeId); } } if (ages.Count < 1) { message.Add("Please select at least one age range to filter by."); } if (ProcessedY.Checked == true) { statuses.Add(true); } if (ProcessedN.Checked == true) { statuses.Add(false); } if (statuses.Count < 1) { message.Add("Please select at least one status to filter by."); } if (message.Count == 1) { MessageUserControl.ShowInfoMessage(message[0]); } else if (message.Count > 1) { MessageUserControl.ShowInfoList("Please address the following errors and try again: ", message); } else { try { List <ContactRequestDTO> contactRequests = new List <ContactRequestDTO>(); if (dateStart.Value == "" && dateEnd.Value == "") { contactRequests = surveyController.ViewContactRequests(unitIds, genders, ages, statuses, respodentIds); } else if (dateStart.Value == "" && dateEnd.Value != "") { dateOne = DateTime.MinValue; contactRequests = surveyController.ViewContactRequests(unitIds, genders, ages, dateOne, dateTwo, statuses, respodentIds); } else if (dateStart.Value != "" && dateEnd.Value == "") { dateTwo = DateTime.Today; dateEnd.Value = DateTime.Today.ToString("MM/dd/yyyy", CultureInfo.InvariantCulture); contactRequests = surveyController.ViewContactRequests(unitIds, genders, ages, dateOne, dateTwo, statuses, respodentIds); } else { contactRequests = surveyController.ViewContactRequests(unitIds, genders, ages, dateOne, dateTwo, statuses, respodentIds); } if (contactRequests.Count < 1) { MessageUserControl.ShowInfoMessage("No contact requests found matching the entered search criteria."); } else { ResultCountLabel.Text = (contactRequests.Count).ToString(); ContactRequestsRepeater.DataSource = contactRequests; ContactRequestsRepeater.DataBind(); } } catch (Exception ex) { MessageUserControl.ShowErrorMessage("Retrieving contact requests from the database failed. Please try again. If error persists, please contact your administrator.", ex); } } }