示例#1
0
        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);
                }
            }
        }
示例#2
0
        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);
            }
        }
示例#3
0
        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));
        }