private void featchNearesrFriend(int i_radius, Enums.eDistanceMethod eDistance) { List <FriendByCoordinate> listOfNearesrFriend = FeatureFactory.Instance.Create(FormMainFacade.Instance.LoggedInUser.LoggedUser).InitiateCloseFriends(i_radius, eDistance); if (listOfNearesrFriend.Count == 0) { lbClosestFriends.Items.Add("No Friends :("); } else if (listOfNearesrFriend.Count > 0) { foreach (FriendByCoordinate item in listOfNearesrFriend) { lbClosestFriends.Items.Add(item.m_Name); } } }
internal List <FriendByCoordinate> NearestFriendsMeth(int i_radius, Enums.eDistanceMethod eDistance) { double distance = 0; int index = 0; try { if (m_loggedUser.Friends != null && m_loggedUser.Location.Name != null) { listFriendsInRadius = new List <FriendByCoordinate>(); foreach (User friend in m_loggedUser.Friends) { if (friend.Location.Location != null) { distance = this.distance((double)m_loggedUser.Location.Location.Latitude, (double)m_loggedUser.Location.Location.Longitude, (double)friend.Location.Location.Latitude, (double)friend.Location.Location.Longitude); closeFriends.m_Distance = distance; closeFriends.m_Name = friend.Name; if (distanceStrategy.Invoke(eDistance, distance, i_radius)) //injection { listFriendsInRadius.Insert(index++, closeFriends); } } else { break; } } } return(listFriendsInRadius); } catch { return(null); } }
public List <FriendByCoordinate> InitiateCloseFriends(int i_radius, Enums.eDistanceMethod eDistance) { if (eDistance.Equals(Enums.eDistanceMethod.farOffFriends)) { m_CloseFriends = new NearestFriends(m_loggedUser) { distanceStrategy = (distType, distance, radius) => distType == Enums.eDistanceMethod.farOffFriends && distance >= radius }; } else { m_CloseFriends = new NearestFriends(m_loggedUser) { distanceStrategy = (distType, distance, radius) => distType == Enums.eDistanceMethod.closestFriends && distance <= radius } }; return(m_CloseFriends.NearestFriendsMeth(i_radius, eDistance)); }