protected void Page_Load(object sender, EventArgs e) { var identifyUser = IdentifyUser(); // Identify the user if (identifyUser) { var contact = Sitecore.Analytics.Tracker.Current.Contact; ICustomDataFacet facet = contact.GetFacet <ICustomDataFacet>(CustomDataFacet.FacetName); // Get the facet if (facet != null) { facet.ActiveCustomer = true; facet.CrmId = "1234567A"; // Product Purchases var productPurchasesField = facet.ProductPurchases.Create(); productPurchasesField.ProductId = "PID1"; productPurchasesField.PurchaseDate = DateTime.Now; var productPurchasesField2 = facet.ProductPurchases.Create(); productPurchasesField2.ProductId = "PID3"; productPurchasesField2.PurchaseDate = DateTime.Now; } // Set email address var emailFacet = contact.GetFacet <IContactEmailAddresses>("Emails"); var personalEmail = emailFacet.Entries.Create("personal"); personalEmail.SmtpAddress = "*****@*****.**"; emailFacet.Preferred = "personal"; } }
public override void Process(ReportProcessorArgs args) { ICustomDataFacet fullFacet = (ICustomDataFacet)CustomerIntelligenceManager.ContactService.GetFacet(args.ReportParameters.ContactId, "CustomData"); var result = args.QueryResult; var table = args.ResultTableForView; foreach (DataRow row in result.AsEnumerable()) { var targetRow = table.NewRow(); // CRM ID var id = row["CustomData_CrmId"]; if (id == null || string.IsNullOrEmpty(id.ToString())) { continue; } targetRow["CrmId"] = id; // Active Customer var activeCustomer = row["CustomData_ActiveCustomer"]; if (activeCustomer == null || string.IsNullOrEmpty(id.ToString())) { continue; } targetRow["ActiveCustomer"] = activeCustomer; // Product Purchases DataTable productPurchases = new DataTable(); productPurchases.Columns.Add("Product", typeof(string)); productPurchases.Columns.Add("Date", typeof(DateTime)); if (fullFacet.ProductPurchases != null && fullFacet.ProductPurchases.Any()) { foreach (var purchase in fullFacet.ProductPurchases) { productPurchases.Rows.Add(purchase.ProductId, purchase.PurchaseDate); } } targetRow["ProductPurchases"] = productPurchases; table.Rows.Add(targetRow); } args.ResultSet.Data.Dataset[args.ReportParameters.ViewName] = table; }
protected override bool Execute(T ruleContext) { try { var contact = Sitecore.Analytics.Tracker.Current.Contact; ICustomDataFacet facet = contact.GetFacet <ICustomDataFacet>(CustomDataFacet.FacetName); // Get the facet return(facet.ActiveCustomer); } catch (Exception) { return(false); } }