Exemple #1
0
 public JsonResult GetConsent()
 {
     try
     {
         Task <bool?> siteConsentProvided = ConsentInfoHelper.isConsented(Tracker.Current.Session.Contact, Sitecore.Sites.SiteContext.Current);
         if (siteConsentProvided.Result == null)
         {
             return(Json(new { error = false, consentAnswered = false, consented = false }, JsonRequestBehavior.AllowGet));
         }
         else if (siteConsentProvided.Result == true)
         {
             return(Json(new { error = false, consentAnswered = true, consented = true }, JsonRequestBehavior.AllowGet));
         }
         else if (siteConsentProvided.Result == false)
         {
             return(Json(new { error = false, consentAnswered = true, consented = false }, JsonRequestBehavior.AllowGet));
         }
         else
         {
             return(Json(new { error = false, consentAnswered = false, consented = false }, JsonRequestBehavior.AllowGet));
         }
     }
     catch (Exception ex)
     {
         return(Json(new { error = true, errorMsg = "Msg: " + ex.Message + " || InnerException: " + ex.InnerException + " || StackTrace: " + ex.StackTrace }, JsonRequestBehavior.AllowGet));
     }
 }
Exemple #2
0
        public override void Process(StartTrackingArgs args)
        {
            Assert.ArgumentNotNull((object)args, nameof(args));
            Assert.IsNotNull((object)Tracker.Current, "Tracker.Current");
            Assert.IsNotNull((object)Tracker.Current.Session, "Tracker.Current.Session");
            Assert.IsNotNull((object)Tracker.Current.Session.Contact, "Tracker.Current.Session.Contact");

            Task <bool?> siteConsentProvided = ConsentInfoHelper.isConsented(Tracker.Current.Session.Contact, Sitecore.Sites.SiteContext.Current);

            // Abort tracking if we do not have consent to track via XConnect
            if (siteConsentProvided.Result != true)
            {
                args.AbortPipeline();
            }
            else
            {
                // Track contact via XConnect if they provide explicit consent
                InitializeTrackerPipeline.Run(new InitializeTrackerArgs()
                {
                    CanBeRobot   = true,
                    Session      = Tracker.Current.Session,
                    IsNewContact = Tracker.Current.Session.Contact.IsNew,
                    HttpContext  = args.HttpContext
                });
            }
        }