private bool SetPrepare(ISessionStateItemCollection data, int sessionTimeout, out string[] keyArgs, out object[] valueArgs)
{
keyArgs = null;
valueArgs = null;
if (data != null && data.Count > 0)
{
ChangeTrackingSessionStateItemCollection sessionItems = (ChangeTrackingSessionStateItemCollection)data;
List <object> list = redisUtility.GetNewItemsAsList(sessionItems);
if (list.Count > 0)
{
keyArgs = new string[] { Keys.DataKey, Keys.InternalKey };
valueArgs = new object[list.Count + 2]; // this +2 is for first 2 values in ARGV that we will add now
valueArgs[0] = list.Count + 2;
valueArgs[1] = sessionTimeout;
list.CopyTo(valueArgs, 2);
return(true);
}
}
return(false);
}