I'm using sitecore 9.1.1 and SQL server is used for xDB. in below code I'm adding custom values and this gets executed when I close the browser and interaction is being added into xConnect by default by sitecore.
now my question is that it is not being hit all the time when I close the browser.
there is no consistency some time it gets executed post closing browser in 5 min, sometime in 10 min, sometime 20 min or some time dont get executed.
Please advise.
public class ConvertInteractionFacet : ConvertToXConnectInteractionProcessorBase
{
private ILogger _logMessage;
public override void Process(ConvertToXConnectInteractionPipelineArgs args)
{
_logMessage = new Logger();
_logMessage.Log(LogType.Info, "Info: start ConvertInteractionFacet process12345");
try
{
string planCode = string.Empty;
string planMemberId = string.Empty;
string userId = string.Empty;
try
{
var memberActiveAccount = string.Empty;
if (Sitecore.Context.HttpContext.Session != null && Sitecore.Context.HttpContext.Session["CurrentUserDetails"] != null)
{
var currentUserDetails = ((UserDetails)Sitecore.Context.HttpContext.Session["CurrentUserDetails"]);
planMemberId = ((PlanMemberAccount)currentUserDetails.MemberAccounts).PlanMemberId.ToString();
planCode = ((PlanMemberAccount)currentUserDetails.MemberAccounts).PlanCode.ToString();
userId = currentUserDetails.UserId;
_logMessage.Log(LogType.Info, "Info: plan member id is " + planMemberId + " and Plan code is " + planCode);
}
else
{
_logMessage.Log(LogType.Info, "Info: plan member id not in session");
}
}
catch(Exception ex)
{
_logMessage.Log(LogType.Error, "Error12345.GetActivePlanMemberAccount: " + ex.Message);
}
if (args != null && args.XConnectInteraction.Events.Count > 0)
{
if (!args.XConnectInteraction.Events[0].CustomValues.ContainsKey("PlanCode"))
args.XConnectInteraction.Events[0].CustomValues.Add("PlanCode", planCode);
if (!args.XConnectInteraction.Events[0].CustomValues.ContainsKey("PlanMemberId"))
args.XConnectInteraction.Events[0].CustomValues.Add("PlanMemberId", planMemberId);
if (!args.XConnectInteraction.Events[0].CustomValues.ContainsKey("SessionId"))
args.XConnectInteraction.Events[0].CustomValues.Add("SessionId", Guid.NewGuid().ToString());
if (!args.XConnectInteraction.Events[0].CustomValues.ContainsKey("UserId"))
args.XConnectInteraction.Events[0].CustomValues.Add("UserId", userId);
if (!args.XConnectInteraction.Events[0].CustomValues.ContainsKey("CorrelationId"))
args.XConnectInteraction.Events[0].CustomValues.Add("CorrelationId", Guid.NewGuid().ToString());
if (!args.XConnectInteraction.Events[0].CustomValues.ContainsKey("TimeStamp"))
args.XConnectInteraction.Events[0].CustomValues.Add("TimeStamp", DateTime.UtcNow.ToString());
}
_logMessage.Log(LogType.Info, "Info: end ConvertInteractionFacet process12345");
}
catch (Exception ex)
{
_logMessage.Log(LogType.Error, "Error12345: " + ex.Message);
}
}
}