//Returns a List of Members next to the memberID based on the maximum distance public static List<DistancedMember> doDistanceSearch(double distance, Int64 mitgliedID) { List<DistancedMember> ratedMembers = new List<DistancedMember>(); using (DBEntities dbConnection = new DBEntities()) { List<Nullable<Int64>> allMitglieder = dbConnection.getNotFriends(mitgliedID).ToList(); foreach (Int64 currentMitglied in allMitglieder) { double distanceCurrentUser = GeoCalculator.calculateDistanceBetweenUsers(mitgliedID, currentMitglied); if(distanceCurrentUser != -1) { if (distanceCurrentUser <= distance) { Mitglied currentMitgliedObject = Datareader.getMitgliedByID(currentMitglied); ratedMembers.Add(new DistancedMember(currentMitgliedObject, distanceCurrentUser)); } else { } } else { } } return ratedMembers.OrderBy(x => x.distance).ToList(); } }
//2. retuns a Mitglieder List of Persons that the member does not know public static List<Ratedmember> getRatableMember(List<Nullable<long>> myFriends, Int64 mitgliedID) { using (DBEntities dbConnection = new DBEntities()) { List<Ratedmember> ratableMember = new List<Ratedmember>(); List<Nullable<Int64>> nU = dbConnection.getNotFriends(mitgliedID).ToList(); foreach (Int64 currentUSer in nU) { ratableMember.Add(new Ratedmember(dbConnection.Mitglied.Find(currentUSer))); } //foreach(getMitgliederWithOutPicture_Result currentMitglied in dbConnection.getMitgliederWithOutPicture()) //{ // bool isAlreadyFriendFriend = false; // foreach (Nullable<long> currentFriend in myFriends) // { // if (currentFriend.Equals(currentMitglied.mitgliedID)) // { // //do nothing because you dont need to rate a friend again // //ratableMember.Add(new Ratedmember(currentMitglied)); // isAlreadyFriendFriend = true; // } // else // { // //ratableMember.Add(new Ratedmember(currentMitglied)); // } // } // if (isAlreadyFriendFriend == false) // { // ratableMember.Add(new Ratedmember(currentMitglied)); // } // else // { // } //} return ratableMember; } }