public static UserToICompareableAdapter getActiveFriendByDistance(User i_LoggedInUser, int i_ChosenDistance, List <string> sortParamsList) { List <User> filteredUsersList = FriendsByDistance.FriendsByDistanceFeatureManager.GetFriendsInDistance(i_LoggedInUser, i_ChosenDistance); List <UserToICompareableAdapter> activeFriendList = ActiveFriendFeatureManager.FetchActiveFriendsList(i_LoggedInUser, sortParamsList, filteredUsersList); UserToICompareableAdapter mostActiveFriend = null; if (activeFriendList.Count > 0) { mostActiveFriend = activeFriendList[0]; } else { throw new Exception("Can't get most active friend by distance"); } return(mostActiveFriend); }
private void fetchMostActiveFriendsButton_Click(object i_Sender, EventArgs i_E) { if (m_LoggedInUser != null) { Thread thread = new Thread(() => { List <string> sortParamsList = CheckedListBoxSortingParameters.CheckedItems.OfType <string>().ToList(); List <User> friendList = m_LoggedInUser.Friends.ToList(); List <UserToICompareableAdapter> activeFriendList = ActiveFriendFeatureManager.FetchActiveFriendsList(m_LoggedInUser, sortParamsList, friendList); mostActiveFriendsListBox.Invoke(new Action(() => { mostActiveFriendsListBox.Items.Clear(); mostActiveFriendsListBox.DisplayMember = "Name"; activeFriendList.ForEach(new Action <UserToICompareableAdapter>(friend => mostActiveFriendsListBox.Items.Add(friend))); })); }); thread.Start(); } }