public static void SetVisitTagsOnLogin(string domainUser, bool IsNewUser) { string name = Sitecore.Context.User.Profile.FullName; if (name == String.Empty) { name = Sitecore.Context.User.LocalName; } Tracker.Current.Contact.Tags.Add("Username", domainUser); Tracker.Current.Contact.Tags.Add("Full name", name); Tracker.Current.Contact.Identifiers.AuthenticationLevel = AuthenticationLevel.PasswordValidated; Tracker.Current.Session.Identify(domainUser); if (IsNewUser) { IContactPersonalInfo personalFacet = Tracker.Current.Contact.GetFacet <IContactPersonalInfo>("Personal"); personalFacet.FirstName = GetFirstName(name); personalFacet.Surname = GetSurName(name); IContactEmailAddresses addressesFacet = Tracker.Current.Contact.GetFacet <IContactEmailAddresses>("Emails"); IEmailAddress address; if (!addressesFacet.Entries.Contains("work_email")) { address = addressesFacet.Entries.Create("work_email"); address.SmtpAddress = GetEmailAddressFromUser(domainUser); addressesFacet.Preferred = "work_email"; } } }
public TrackerDetails GetTracker(PageDetails data) { var Tracker = this.GetTracker(false); if (Tracker == null || !Tracker.IsActive) { throw new ArgumentException("Context is invalid"); } var pageId = Guid.Empty; Guid.TryParse(data.pageId, out pageId); var pageInteraction = Tracker.Interaction.Pages.LastOrDefault(a => a.Item.Id == pageId); var page = pageInteraction != null?Tracker.Interaction.GetPage(pageInteraction.VisitPageIndex) : Tracker.Interaction.PreviousPage; var details = new TrackerDetails(); foreach (var pageEvent in page.PageEvents) { EventDetails eventDetails = new EventDetails(); eventDetails.name = pageEvent.Name; eventDetails.text = pageEvent.Text; eventDetails.value = pageEvent.Value.ToString(); eventDetails.isGoal = pageEvent.IsGoal ? "1" : "0"; details.events.Add(eventDetails); } details.contactId = Tracker.Contact.ContactId.ToString(); details.userName = Tracker.Contact.Identifiers.Identifier; try { Contact contact = Tracker.Contact; IContactPersonalInfo personal = contact.GetFacet <IContactPersonalInfo>("Personal"); details.name = string.Format("{0} {1} {2}", personal.FirstName, personal.MiddleName, personal.Surname); } catch (Exception ex) { Sitecore.Diagnostics.Log.Error("Could not get Name", ex); } try { Contact contact = Tracker.Contact; IContactEmailAddresses emails = contact.GetFacet <IContactEmailAddresses>("Personal"); details.email = emails.Entries[emails.Preferred].SmtpAddress; } catch (Exception ex) { Sitecore.Diagnostics.Log.Error("Could not get Preferred Email Address", ex); } Tracker.CurrentPage.Cancel(); return(details); }
public static void SaveContact(string userName, string firstName, string lastName, DateTime birthDate, string emailAddress, string workEmailAddress) { Contact contact = Tracker.Current.Contact; contact.Identifiers.AuthenticationLevel = AuthenticationLevel.PasswordValidated; Tracker.Current.Session.Identify(userName); IContactPersonalInfo personal = contact.GetFacet <IContactPersonalInfo>("Personal"); personal.FirstName = firstName; personal.Surname = lastName; personal.BirthDate = birthDate; // Storing multiple email address IContactEmailAddresses email = contact.GetFacet <IContactEmailAddresses>("Emails"); var personalEmail = email.Entries.Create("personal"); personalEmail.SmtpAddress = emailAddress; var workEmail = email.Entries.Create("work"); workEmail.SmtpAddress = emailAddress; email.Preferred = "personal"; // Storing multiple Addresses IContactAddresses address = contact.GetFacet <IContactAddresses>("Addresses"); IAddress homeAddress = address.Entries.Create("home"); homeAddress.StreetLine1 = "Address 1 - Home"; homeAddress.City = "New York"; homeAddress.StateProvince = "NY"; homeAddress.PostalCode = "03587"; IAddress officeAddress = address.Entries.Create("office"); officeAddress.StreetLine1 = "Address 1 - Office"; officeAddress.City = "New York"; officeAddress.StateProvince = "NY"; officeAddress.PostalCode = "03587"; address.Preferred = "home"; // Add custom details in System Facets - Tag and Extensions contact.Tags.Add("Username", userName); contact.Tags.Add("Full name", firstName + " " + lastName); contact.Extensions.SimpleValues["Username"] = userName; contact.Extensions.SimpleValues["Full Name"] = firstName + " " + lastName; }
private static void SetEmail(Session session, string email) { IContactEmailAddresses emailAddresses = session.Contact.GetFacet <IContactEmailAddresses>("Emails"); emailAddresses.Preferred = PreferredEmailKey; if (emailAddresses.Entries.Contains(PreferredEmailKey)) { emailAddresses.Entries[PreferredEmailKey].SmtpAddress = email; } else { emailAddresses.Entries.Create(PreferredEmailKey).SmtpAddress = email; } }
public void Emails_FacetExist_ShouldReturnContactEmail([NoAutoProperties] ContactProfileProvider provider, IContactEmailAddresses facet, ITracker tracker, [Substitute] Contact contact) { tracker.IsActive.Returns(true); tracker.Contact.Returns(contact); contact.Facets.Returns(new ReadOnlyDictionary<string, IFacet>(new Dictionary<string, IFacet> { { @"Emails", facet } } )); using (new TrackerSwitcher(tracker)) { provider.Emails.Should().NotBeNull(); provider.Emails.ShouldBeEquivalentTo(facet); } }
public void Emails_FacetExist_ShouldReturnContactEmail([NoAutoProperties] ContactProfileProvider provider, IContactEmailAddresses facet, ITracker tracker, [Substitute] Contact contact) { tracker.IsActive.Returns(true); tracker.Contact.Returns(contact); contact.Facets.Returns(new ReadOnlyDictionary <string, IFacet>(new Dictionary <string, IFacet> { { @"Emails", facet } } )); using (new TrackerSwitcher(tracker)) { provider.Emails.Should().NotBeNull(); provider.Emails.ShouldBeEquivalentTo(facet); } }