private bool AddMatchedUser(BookSyncContact phoneContact, FacebookUser facebookUser) { if (facebookUser == null) { return(false); } BookSyncContact matchedContact = new BookSyncContact(); matchedContact.PhoneFirstName = phoneContact.PhoneFirstName; matchedContact.PhoneLastName = phoneContact.PhoneLastName; matchedContact.PhoneContactId = phoneContact.PhoneContactId; matchedContact.PhoneImageBase64 = phoneContact.PhoneImageBase64; matchedContact.FacebookFirstName = facebookUser.FirstName; matchedContact.FacebookLastName = facebookUser.LastName; matchedContact.FacebookUserId = facebookUser.ID; matchedContact.FacebookImageSmallUrl = facebookUser.ProfileImageSmallUrl; matchedContact.FacebookImageLargeUrl = facebookUser.ProfileImageLargeUrl; matchedContact.SelectionChange += (sender, e) => OnPropertyChanged(nameof(HasMatchedContacts)); AutoMatchedContacts.Add(matchedContact); return(true); }
public async Task ExecuteAcceptMatchesCommand() { //for each selected match update the master list of booksync contacts and save to json var selectedMatches = AutoMatchedContacts.Where(w => w.IsSelected); if (!selectedMatches.Any()) { return; } //loop through the matches and store them then refresh the list. foreach (var selectedContact in selectedMatches) { var booksyncContact = BookSyncContactsHelper.BookSyncContacts.FirstOrDefault(f => f.PhoneContactId == selectedContact.PhoneContactId); booksyncContact.FacebookUserId = selectedContact.FacebookUserId; booksyncContact.FacebookFirstName = selectedContact.FacebookFirstName; booksyncContact.FacebookLastName = selectedContact.FacebookLastName; booksyncContact.FacebookImageSmallUrl = selectedContact.FacebookImageSmallUrl; booksyncContact.FacebookImageLargeUrl = selectedContact.FacebookImageLargeUrl; await BookSyncContactsHelper.SaveBookSyncContacts(); } LoadAutoMatchedContacts(); }
private void LoadAutoMatchedContacts() { AutoMatchedContacts.Clear(); HasLoaded = false; //no point continuing if either list is empty if (!BookSyncContactsHelper.FacebookUsers.Any() || !BookSyncContactsHelper.PhoneContacts.Any()) { OnPropertyChanged(nameof(HasMatchedContacts)); return; } var unMatchedContacts = BookSyncContactsHelper.BookSyncContacts.Where(w => string.IsNullOrEmpty(w.FacebookUserId)).OrderBy(o => o.PhoneName).ToList(); foreach (var unMatchedContact in unMatchedContacts) { //lookup the facebook contacts for a match. FacebookUser matchedFacebookUser = null; //full name match matchedFacebookUser = BookSyncContactsHelper.FacebookUsers.FirstOrDefault(f => f.FacebookName.Replace(" ", string.Empty).Equals(unMatchedContact.PhoneName.Replace(" ", string.Empty), StringComparison.OrdinalIgnoreCase)); if (AddMatchedUser(unMatchedContact, matchedFacebookUser)) { continue; } //last name search matchedFacebookUser = BookSyncContactsHelper.FacebookUsers.FirstOrDefault(f => f.LastName.Replace(" ", string.Empty).Equals(unMatchedContact.PhoneLastName.Replace(" ", string.Empty), StringComparison.OrdinalIgnoreCase)); if (AddMatchedUser(unMatchedContact, matchedFacebookUser)) { continue; } //first name search matchedFacebookUser = BookSyncContactsHelper.FacebookUsers.FirstOrDefault(f => f.FirstName.Replace(" ", string.Empty).Equals(unMatchedContact.PhoneFirstName.Replace(" ", string.Empty), StringComparison.OrdinalIgnoreCase)); if (AddMatchedUser(unMatchedContact, matchedFacebookUser)) { continue; } } AutoMatchedContactsChanged(); }