internal List <KeyValuePair <int, User> > GetMatch(User.eGender i_GenderOfInterest) { ICollection <User> userBestMatches; //// this line should be applied for better match, facebook API doesnt provide friends gender though. //// userBestMatches = FaceBookUser.Friends.Where(friend => friend.Gender == i_GenderOfInterest).ToList<User>(); userBestMatches = FaceBookUser.Friends; foreach (User friend in userBestMatches) { int friendScore = 0; if (friend.Hometown != null && friend.Hometown.Equals(FaceBookUser.Hometown)) { friendScore += k_SameCity; } friendScore += addToScore(friend.Events, FaceBookUser.Events, k_AttendigToSameEvent); friendScore += addToScore(friend.Checkins, FaceBookUser.Checkins, k_samePlaceCheckedIn); FriendsMatch.Add(new KeyValuePair <int, User>(friendScore, friend)); } return(FriendsMatch.OrderByDescending(x => x.Key).ToList()); }
public IEnumerable <User> MatchWithAge(User.eGender i_gender, string i_single = "false", int i_minAge = 18, int i_maxAge = 70) { DateTime bornBefore = DateTime.Now.AddYears(-i_minAge); DateTime bornAfter = DateTime.Now.AddYears(-i_maxAge); bool forceSingle = false; bool single = false; switch (i_single) { case "false": single = false; break; case "true": single = true; break; case "force": single = true; forceSingle = true; break; } UserTest headTest = new UserTest((i_user) => m_logic.GenderFilter(i_user, i_gender)); headTest.Add((i_user) => m_logic.AgeFilter(i_user, bornBefore, bornAfter)); headTest.Add((i_user) => single ? m_logic.Single(i_user, forceSingle) : true); return(m_logic.ChainFilter(headTest)); }
public LinkedList <UserProxy> MatchMe(string i_HomeTownFilter, User.eGender i_GenderFilter) { LinkedList <UserProxy> filteredFriendsList; filteredFriendsList = m_DatingFeature.GenerateFilteredFriendsList(i_HomeTownFilter, i_GenderFilter); return(filteredFriendsList); }
public FacebookUserProxyCollection MatchMe(string i_HomeTownFilter, User.eGender i_GenderFilter) { FacebookUserProxyCollection filteredFriendsList; filteredFriendsList = m_DatingFeature.GenerateFilteredFriendsList(i_HomeTownFilter, i_GenderFilter); return(filteredFriendsList); }
private bool isGenderMatch(User.eGender i_GenderFilter, User i_Friend) { // this method recieve gender filter and a friend // and return true if the friend is interested in the logged in user gender // and if the friend's gender matches the gender filter. bool isGenderAMatch; isGenderAMatch = i_Friend.InterestedIn.Equals(m_LoggedInUser.Gender) && i_GenderFilter.Equals(i_Friend.Gender); return(isGenderAMatch); }
private bool isFriendAMatch(User i_Friend, string i_HomeTownFilter, User.eGender i_GenderFilter) { // this method recieve a friend and return true if he mathces the filters. bool isFriendMatchingFilter; isFriendMatchingFilter = isOpenToDating(i_Friend) && isCityMatch(i_HomeTownFilter, i_Friend.Hometown) && isGenderMatch(i_GenderFilter, i_Friend); return(isFriendMatchingFilter); }
private void buttonSearchMatch_Click(object sender, EventArgs e) { listBoxMatches.Items.Clear(); User.eGender gender = (User.eGender)comboBoxGender.SelectedItem; bool single = (bool)checkBoxSinglesOnly.Checked; IEnumerable <User> matches = m_matchFinder.Match(gender, single.ToString()); foreach (User friend in matches) { listBoxMatches.Items.Add(friend); } }
public bool FindMatchWithStrategy(int i_FromAge, int i_ToAge, User.eGender i_WantedGender) { bool result = false; if ((UserAge >= i_FromAge && UserAge <= i_ToAge) && CheckedUser.Gender == i_WantedGender && (CheckedUser.RelationshipStatus == User.eRelationshipStatus.Single || CheckedUser.RelationshipStatus == null)) { result = true; } return(result); }
public FacebookObjectCollection <User> FilterByGender(User.eGender i_Gender) { FacebookObjectCollection <User> resCollection = new FacebookObjectCollection <User>(); if (LoggedUser != null) { foreach (User friend in LoggedUser.Friends) { if (friend.Gender == i_Gender) { resCollection.Add(friend); } } } return(resCollection); }
public bool FindMatchWithStrategy(int i_FromAge, int i_ToAge, User.eGender i_WantedGender) { bool result = false; string loggedInUserCity = LoggedInUser.Location.Name.Split(',').First(); string friendUserCity = CheckedUser.Location.Name.Split(',').First(); if (loggedInUserCity.Equals(friendUserCity) && (UserAge >= i_FromAge && UserAge <= i_ToAge) && CheckedUser.Gender == i_WantedGender && (CheckedUser.RelationshipStatus == User.eRelationshipStatus.Single || CheckedUser.RelationshipStatus == null)) { result = true; } return(result); }
public KeyValuePair <int, User> InitFindLove(User.eGender i_GenderOfInterest) { Matcher = new Matcher(FacebookUser); if (Matcher.FriendsMatch != null) { throw new ArgumentException("find love feature already initiated"); } Matcher.InitMatches(i_GenderOfInterest); if (Matcher.FriendsMatch.Count == 0) { throw new NotSupportedException("feature doesnt support empty friend list"); } return(GetMatch("right")); }
public IEnumerable <User> Match(User.eGender i_gender, string i_single = "False") { bool single = false; switch (i_single) { case "False": single = false; break; case "True": single = true; break; case "Force": single = true; break; } ITestHandler <User> tester = new UserTest((i_user) => m_logic.GenderFilter(i_user, i_gender)); tester.Add((i_user) => single ? m_logic.GenderFilter(i_user, i_gender) : true); return(m_logic.ChainFilter(tester)); }
public LinkedList <UserProxy> GenerateFilteredFriendsList(string i_HomeTownFilter, User.eGender i_GenderFilter) { // show a dialog which the user can choose which gender he wants to date // and also the user will enter a city which he wants to find the date/all cities. LinkedList <UserProxy> filteredFriendsList = new LinkedList <UserProxy>(); foreach (User friend in m_LoggedInUser.Friends) { if (isFriendAMatch(friend, i_HomeTownFilter, i_GenderFilter)) { filteredFriendsList.AddLast(new UserProxy(friend)); } } // now show filteredUsers list in listBox -and when the user choose one of them - // their profile picture and email to contact will appear. return(filteredFriendsList); }
public FacebookUserProxyCollection GenerateFilteredFriendsList(string i_HomeTownFilter, User.eGender i_GenderFilter) { // show a dialog which the user can choose which gender he wants to date // and also the user will enter a city which he wants to find the date/all cities. LinkedList <UserProxy> filteredFriendsList = new LinkedList <UserProxy>(); foreach (User friend in m_LoggedInUser.Friends) { if (isFriendAMatch(friend, i_HomeTownFilter, i_GenderFilter)) { filteredFriendsList.AddLast(new UserProxy(friend)); } } // sort the list according to user demand FacebookUserProxyCollection facebookUserProxyCollection = new FacebookUserProxyCollection(sort(filteredFriendsList)); return(facebookUserProxyCollection); }
private void addFriendsByGender(User.eGender i_Gender) { listBoxFilteredFriends.Items.Clear(); m_FilteredFriends = r_AppLogic.FriendsFilter.FilterByGender(i_Gender); displayOnEmptyList("No one from the friends stated this gender :("); }
public FacebookObjectCollection <User> FilterByGender(User.eGender i_Gender) { Filter.Gender = i_Gender; m_FilterStrategy = new FilterByGender(); return(m_FilterStrategy.FilterFriends(Filter)); }
public FacebookObjectCollection <User> FilterByGender(User.eGender i_Gender) { return(this.m_Filter.FilterByGender(i_Gender)); }
public bool GenderFilter(User i_user, User.eGender i_gender) { return(i_gender == i_user.Gender); }
internal GenderFilter(string i_GenderType) { const string k_MaleString = "male"; m_GenderType = i_GenderType.ToLower().Equals(k_MaleString) ? User.eGender.male : User.eGender.female; }
public void InitMatches(User.eGender i_GenderOfInterest) { FriendsMatch = new List <KeyValuePair <int, User> >(); FriendsMatch = GetMatch(i_GenderOfInterest); IndexInMatchCollection = -1; // for first increament }