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";
            }
        }
示例#2
0
        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);
            }
        }