private void loadResults(string city, string state, string gender, string commitment, string haveKids, string wantKids, string occupation) { string url = "https://localhost:44369/api/DatingService/Search/LoadSearchResults/Member/" + GlobalData.APIKey + "/" + city + "/" + state + "/" + gender + "/" + commitment + "/" + haveKids + "/" + wantKids + "/" + occupation; WebRequest request = WebRequest.Create(url); WebResponse response = request.GetResponse(); Stream theDataStream = response.GetResponseStream(); StreamReader reader = new StreamReader(theDataStream); string data = reader.ReadToEnd(); reader.Close(); response.Close(); JavaScriptSerializer js = new JavaScriptSerializer(); MemberSearchResults[] profileResults = js.Deserialize <MemberSearchResults[]>(data); List <ProfileDisplayClass> profileResultsList = new List <ProfileDisplayClass>(); foreach (MemberSearchResults result in profileResults) { User userResult = new User(); int resultUserID = userResult.getUserID(result.Username); ProfileDisplayClass profileDisplay = new ProfileDisplayClass(); profileResultsList.Add(profileDisplay.retreiveProfileDisplayFromDB(resultUserID)); } ArrayList filterPassedProfileResults = new ArrayList(); User currentUser = new User(); int currentUserID = currentUser.getUserID(Session["Username"].ToString()); PassedList currentUserPassedList = new PassedList(); currentUserPassedList = currentUserPassedList.getPasses(currentUserID); foreach (ProfileDisplayClass result in profileResultsList)//adds search results that are not currently in the users passed list { User userResult = new User(); int resultUserID = userResult.getUserID(result.Username); if ((currentUserPassedList == null && resultUserID != currentUserID)) { filterPassedProfileResults.Add(result); } else if ((currentUserPassedList != null && !currentUserPassedList.List.Contains(resultUserID.ToString())) && (resultUserID != currentUserID)) { filterPassedProfileResults.Add(result); } } ArrayList filterUserBlockedProfileResults = new ArrayList(); BlockedList currentUserBlockedList = new BlockedList(); currentUserBlockedList = currentUserBlockedList.getBlocked(currentUserID); foreach (ProfileDisplayClass result in filterPassedProfileResults)//adds search results that are not in the users blocked list { User userResult = new User(); int resultUserID = userResult.getUserID(result.Username); if (currentUserBlockedList == null) { filterUserBlockedProfileResults.Add(result); } else if (!currentUserBlockedList.List.Contains(resultUserID.ToString())) { filterUserBlockedProfileResults.Add(result); } } ArrayList filterBlockedByProfileResults = new ArrayList(); foreach (ProfileDisplayClass result in filterUserBlockedProfileResults.ToArray())//adds search results that do not have the current user blocked { User userResult = new User(); int resultUserID = userResult.getUserID(result.Username); BlockedList resultBlockedList = new BlockedList(); resultBlockedList = resultBlockedList.getBlocked(resultUserID); if (resultBlockedList == null) { filterBlockedByProfileResults.Add(result); } else if (!resultBlockedList.List.Contains(resultUserID.ToString())) { filterBlockedByProfileResults.Add(result); } } //return filterBlockedByProfileResults; List <ProfileDisplayClass> filteredProfiles = filterBlockedByProfileResults.Cast <ProfileDisplayClass>().ToList(); //Table tblResults = generateResultsTable(filteredProfiles); if (filteredProfiles.Count != 0) { Table tblResults = generateResultsTable(filteredProfiles); resultsDiv.Controls.Add(tblResults); resultsContainer.Visible = true; } else { Label lblNoResults = new Label(); lblNoResults.ID = "lblNoResults"; lblNoResults.Text = "There no profiles that meet your criteria, please search again."; resultsDiv.Controls.Add(lblNoResults); resultsContainer.Visible = true; } }