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);
            }
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
        }
Exemple #5
0
        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);
        }
Exemple #6
0
        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);
        }