private bool SetAvatar(ContactFacetData data, XConnect.Contact contact, XConnectClient client) { var url = data.AvatarUrl; var mimeType = data.AvatarMimeType; if (string.IsNullOrEmpty(url) || string.IsNullOrEmpty(mimeType)) { return(false); } try { var web = new WebClient(); var pictureData = web.DownloadData(url); var pictureMimeType = mimeType; var avatar = contact.Avatar(); if (avatar == null) { avatar = new Avatar(pictureMimeType, pictureData); } else { avatar.MimeType = pictureMimeType; avatar.Picture = pictureData; } client.SetFacet(contact, Avatar.DefaultFacetKey, avatar); return(true); } catch (Exception exception) { Log.Warn($"Could not download profile picture {url}", exception, this); return(false); } }
private bool SetPhone(ContactFacetData data, XConnect.Contact contact, XConnectClient client) { var phoneNumber = data.PhoneNumber; if (string.IsNullOrEmpty(phoneNumber)) { return(false); } var phoneNumbers = contact.PhoneNumbers(); if (phoneNumbers == null) { phoneNumbers = new PhoneNumberList(new PhoneNumber(null, phoneNumber), null); } else { if (phoneNumbers.PreferredPhoneNumber?.Number == phoneNumber) { return(false); } phoneNumbers.PreferredPhoneNumber = new PhoneNumber(null, phoneNumber); } client.SetFacet(contact, PhoneNumberList.DefaultFacetKey, phoneNumbers); return(true); }
private bool SetEmail(ContactFacetData data, XConnect.Contact contact, XConnectClient client) { var email = data.EmailAddress; if (string.IsNullOrEmpty(email)) { return(false); } var emails = contact.Emails(); if (emails == null) { emails = new EmailAddressList(new EmailAddress(email, false), null); } else { if (emails.PreferredEmail?.SmtpAddress == email) { return(false); } emails.PreferredEmail = new EmailAddress(email, false); } client.SetFacet(contact, EmailAddressList.DefaultFacetKey, emails); return(true); }
private bool SetPhone(UserProfile profile, XConnect.Contact contact, XConnectClient client) { var phoneNumber = profile[Accounts.Constants.UserProfile.Fields.PhoneNumber]; if (string.IsNullOrEmpty(phoneNumber)) { return(false); } var phoneNumbers = contact.PhoneNumbers(); if (phoneNumbers == null) { phoneNumbers = new PhoneNumberList(new PhoneNumber(null, phoneNumber), null); } else { if (phoneNumbers.PreferredPhoneNumber?.Number == phoneNumber) { return(false); } phoneNumbers.PreferredPhoneNumber = new PhoneNumber(null, phoneNumber); } client.SetFacet(contact, PhoneNumberList.DefaultFacetKey, phoneNumbers); return(true); }
private bool SetPhone(ContactFacetData data, XConnect.Contact contact, XConnectClient client) { var phoneNumber = data.PhoneNumber; if (string.IsNullOrEmpty(phoneNumber)) { return(false); } var phoneNumberFacet = new PhoneNumberList(new PhoneNumber(String.Empty, phoneNumber), "Work Phone"); client.SetFacet(contact, PhoneNumberList.DefaultFacetKey, phoneNumberFacet); return(true); }
private bool SetEmail(ContactFacetData data, XConnect.Contact contact, XConnectClient client) { var email = data.EmailAddress; if (string.IsNullOrEmpty(email)) { return(false); } var emailFacet = new EmailAddressList(new EmailAddress(email, true), "Work Email"); client.SetFacet(contact, EmailAddressList.DefaultFacetKey, emailFacet); return(true); }
private static bool SetPersonalInfo(ContactFacetData data, XConnect.Contact contact, XConnectClient client) { var changed = false; var personalInfo = contact.Personal() ?? new PersonalInformation(); changed |= SetBirthdate(data, personalInfo); changed |= SetName(data, personalInfo); changed |= SetGender(data, personalInfo); changed |= SetLanguage(data, personalInfo); if (!changed) { return(false); } client.SetFacet(contact, PersonalInformation.DefaultFacetKey, personalInfo); return(true); }
private static bool SetSportsInterests(ContactFacetData data, XConnect.Contact contact, XConnectClient client) { bool changed = false; if (contact.Facets.ContainsKey(SportName.DefaultKey)) { SportName facet = (SportName)contact.Facets[SportName.DefaultKey]; if (!string.IsNullOrEmpty(data.SportName) && facet.Value != data.SportName) { changed = true; facet.Value = data.SportName; client.SetFacet(contact, SportName.DefaultKey, facet); } } else { client.SetFacet(contact, SportName.DefaultKey, new SportName { Value = data.SportName }); } if (contact.Facets.ContainsKey(SportType.DefaultKey)) { SportType facet = (SportType)contact.Facets[SportType.DefaultKey]; if (!string.IsNullOrEmpty(data.SportType) && facet.Value != data.SportType) { changed = true; facet.Value = data.SportType; client.SetFacet(contact, SportType.DefaultKey, facet); } } else { client.SetFacet(contact, SportType.DefaultKey, new SportType { Value = data.SportType }); } return(changed); }
private bool SetPhone(ContactFacetData data, XConnect.Contact contact, XConnectClient client) { var phoneNumber = data.PhoneNumber; var phoneKey = data.PhoneKey; if (string.IsNullOrEmpty(phoneNumber)) { return(false); } if (contact.PhoneNumbers() != null) { contact.PhoneNumbers().PreferredPhoneNumber = new Sitecore.XConnect.Collection.Model.PhoneNumber(string.Empty, phoneNumber); contact.PhoneNumbers().PreferredKey = phoneKey; client.SetFacet(contact, PhoneNumberList.DefaultFacetKey, contact.PhoneNumbers()); } else { client.SetFacet(contact, PhoneNumberList.DefaultFacetKey, new PhoneNumberList(new PhoneNumber(string.Empty, phoneNumber), phoneKey)); } return(true); }
private bool SetEmail(ContactFacetData data, XConnect.Contact contact, XConnectClient client) { var email = data.EmailAddress; var emailKey = data.EmailKey; if (string.IsNullOrEmpty(email)) { return(false); } if (contact.Emails() != null) { contact.Emails().PreferredEmail = new EmailAddress(email, true); contact.Emails().PreferredKey = emailKey; client.SetFacet(contact, EmailAddressList.DefaultFacetKey, contact.Emails()); } else { client.SetFacet(contact, EmailAddressList.DefaultFacetKey, new EmailAddressList(new EmailAddress(email, true), emailKey)); } return(true); }