Advertisement
Guest User

Untitled

a guest
Jun 16th, 2019
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.50 KB | None | 0 0
  1. public virtual ContactIdentifier CreateContact(string email, PersonalInformation personalInfo)
  2. {
  3. var identifier = new ContactIdentifier(ContactSource, email, ContactIdentifierType.Known);
  4. var identifiers = new ContactIdentifier[] { identifier };
  5.  
  6. try
  7. {
  8. if (CurrentTracker != null && CurrentTracker.IsActive && CurrentTracker.Session != null)
  9. {
  10. CurrentTracker.Session.IdentifyAs(ContactSource, email);
  11. CurrentTracker.Contact.Tags.Set("isEmpty", "false");
  12. }
  13.  
  14. using (var client = SitecoreXConnectClientConfiguration.GetClient())
  15. {
  16. var knownContact = new Contact(identifiers);
  17. client.SetFacet(knownContact, PersonalInformation.DefaultFacetKey, personalInfo);
  18. client.AddContact(knownContact);
  19. client.Submit();
  20. }
  21. }
  22. catch (XdbExecutionException ex)
  23. {
  24. Log.Error("Exception creating contact", ex, this);
  25. }
  26. return identifier;
  27. }
  28.  
  29. public virtual bool CreateContact2(string email, PersonalInformation personalInfo)
  30. {
  31. if (CurrentTracker.Contact.IsNew)
  32. {
  33. var manager = Factory.CreateObject("tracking/contactManager", true) as ContactManager;
  34.  
  35. if (manager != null)
  36. {
  37. CurrentTracker.Contact.ContactSaveMode = ContactSaveMode.AlwaysSave;
  38. manager.SaveContactToCollectionDb(CurrentTracker.Contact);
  39.  
  40. var trackerIdentifier = new IdentifiedContactReference(Sitecore.Analytics.XConnect.DataAccess.Constants.IdentifierSource,
  41. CurrentTracker.Contact.ContactId.ToString("N"));
  42.  
  43. using (XConnectClient client = SitecoreXConnectClientConfiguration.GetClient())
  44. {
  45. try
  46. {
  47. var contact = client.Get(trackerIdentifier, new ContactExpandOptions());
  48.  
  49. if (contact != null)
  50. {
  51. client.SetFacet(contact, PersonalInformation.DefaultFacetKey, personalInfo);
  52. client.Submit();
  53. manager.RemoveFromSession(CurrentTracker.Contact.ContactId);
  54. CurrentTracker.Session.Contact = manager.LoadContact(CurrentTracker.Contact.ContactId);
  55. }
  56. }
  57. catch (XdbExecutionException ex)
  58. {
  59. Log.Error("Error in creating Contact.", ex, this);
  60. return false;
  61. }
  62. }
  63. }
  64. }
  65. return true;
  66. }
  67.  
  68. using (var client = this.CreateClient())
  69. {
  70. //Set your facets here
  71. // Interaction
  72. Guid channelId = Guid.Parse(ChannelId);
  73. string userAgent = "Form Update Contact";
  74. var interaction = new Interaction(contact, InteractionInitiator.Brand, channelId, userAgent);
  75.  
  76. var ItemID = Guid.Parse(HomeId);
  77.  
  78. PageViewEvent pageView = new PageViewEvent(DateTime.UtcNow, ItemID, 3, "en")
  79. {
  80. Duration = new TimeSpan(0, 0, 30),
  81. Url = "/Home"
  82. };
  83.  
  84. interaction.Events.Add(pageView);
  85.  
  86. client.AddInteraction(interaction);
  87. client.Submit();
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement