public void SyncCrmToXdb(ICrmContact crmContact) { try { _logger.Info("Syncing CRM Contact to Tracker.Current.Contact", this); var xdbContact = _analytics.GetCurrentContact(); if (xdbContact != null) { var emailFacet = xdbContact.GetFacet <IContactEmailAddresses>("Emails"); var addressFacet = xdbContact.GetFacet <IContactAddresses>("Addresses"); var personalFacet = xdbContact.GetFacet <IContactPersonalInfo>("Personal"); var phoneFacet = xdbContact.GetFacet <IContactPhoneNumbers>("Phone Numbers"); var email = emailFacet.Entries.Contains("Work Email") ? emailFacet.Entries["Work Email"] : emailFacet.Entries.Create("Work Email"); var address = addressFacet.Entries.Contains("Work Address") ? addressFacet.Entries["Work Address"] : addressFacet.Entries.Create("Work Address"); var workPhone = phoneFacet.Entries.Contains("Work Phone") ? phoneFacet.Entries["Work Phone"] : phoneFacet.Entries.Create("Work Phone"); if (crmContact.EmailAddresses.Any()) { email.SmtpAddress = crmContact.EmailAddresses.First().Value; emailFacet.Preferred = "Work Email"; } if (crmContact.Addresses.Any()) { address.StreetLine1 = crmContact.Addresses.First().StreetLine1; address.StreetLine2 = crmContact.Addresses.First().StreetLine2; address.StreetLine3 = crmContact.Addresses.First().StreetLine3; address.City = crmContact.Addresses.First().City; address.StateProvince = crmContact.Addresses.First().StateProvince; address.PostalCode = crmContact.Addresses.First().PostalCode; address.Country = crmContact.Addresses.First().Country; } if (crmContact.PhoneNumbers.Any()) { phoneFacet.Preferred = "Work Phone"; workPhone.Number = crmContact.PhoneNumbers.First().Value; } personalFacet.Title = crmContact.PersonalInformation.Title; personalFacet.JobTitle = crmContact.PersonalInformation.JobTitle; personalFacet.FirstName = crmContact.PersonalInformation.FirstName; personalFacet.MiddleName = crmContact.PersonalInformation.MiddleName; personalFacet.Surname = crmContact.PersonalInformation.LastName; personalFacet.Gender = crmContact.PersonalInformation.Gender; personalFacet.BirthDate = crmContact.PersonalInformation.BirthDate; _logger.Info("Finished syncing CRM Contact", this); } else { _logger.Warning("The current Tracker.Contact was null", this); } } catch (Exception ex) { _logger.Error("There was a problem syncing the CRM Contact", ex, this); } }
public void SyncCrmToXdb(ICrmContact crmContact) { try { _logger.Info("Syncing CRM Contact to Tracker.Current.Contact", this); var xdbContact = _analytics.GetCurrentContact(); if (xdbContact != null) { var emailFacet = xdbContact.GetFacet<IContactEmailAddresses>("Emails"); var addressFacet = xdbContact.GetFacet<IContactAddresses>("Addresses"); var personalFacet = xdbContact.GetFacet<IContactPersonalInfo>("Personal"); var phoneFacet = xdbContact.GetFacet<IContactPhoneNumbers>("Phone Numbers"); var email = emailFacet.Entries.Contains("Work Email") ? emailFacet.Entries["Work Email"] : emailFacet.Entries.Create("Work Email"); var address = addressFacet.Entries.Contains("Work Address") ? addressFacet.Entries["Work Address"] : addressFacet.Entries.Create("Work Address"); var workPhone = phoneFacet.Entries.Contains("Work Phone") ? phoneFacet.Entries["Work Phone"] : phoneFacet.Entries.Create("Work Phone"); if (crmContact.EmailAddresses.Any()) { email.SmtpAddress = crmContact.EmailAddresses.First().Value; emailFacet.Preferred = "Work Email"; } if (crmContact.Addresses.Any()) { address.StreetLine1 = crmContact.Addresses.First().StreetLine1; address.StreetLine2 = crmContact.Addresses.First().StreetLine2; address.StreetLine3 = crmContact.Addresses.First().StreetLine3; address.City = crmContact.Addresses.First().City; address.StateProvince = crmContact.Addresses.First().StateProvince; address.PostalCode = crmContact.Addresses.First().PostalCode; address.Country = crmContact.Addresses.First().Country; } if (crmContact.PhoneNumbers.Any()) { phoneFacet.Preferred = "Work Phone"; workPhone.Number = crmContact.PhoneNumbers.First().Value; } personalFacet.Title = crmContact.PersonalInformation.Title; personalFacet.JobTitle = crmContact.PersonalInformation.JobTitle; personalFacet.FirstName = crmContact.PersonalInformation.FirstName; personalFacet.MiddleName = crmContact.PersonalInformation.MiddleName; personalFacet.Surname = crmContact.PersonalInformation.LastName; personalFacet.Gender = crmContact.PersonalInformation.Gender; personalFacet.BirthDate = crmContact.PersonalInformation.BirthDate; _logger.Info("Finished syncing CRM Contact", this); } else { _logger.Warning("The current Tracker.Contact was null", this); } } catch (Exception ex) { _logger.Error("There was a problem syncing the CRM Contact", ex, this); } }