/// <summary>
        /// Gets the context visit data for a given context identifier.
        /// </summary>
        /// <param name="contextId">The identifier associated with a specific context.</param>
        /// <returns>The visit object containing a visit count associated with the context identifier.</returns>
        public ContextVisit GetContextVisit(Guid contextId)
        {
            if (_contextVisitsByGuid.TryGetValue(contextId, out var contextVisit))
            {
                return(contextVisit);
            }

            contextVisit = new ContextVisit {
                ContextId = contextId
            };
            _contextVisitsByGuid[contextId] = contextVisit;

            return(contextVisit);
        }
        /// <summary>
        /// Gets the context visit data for a given context identifier.
        /// </summary>
        /// <param name="contextId">The identifier associated with a specific context.</param>
        /// <returns>The visit object containing a visit count associated with the context identifier.</returns>
        public ContextVisit GetContextVisit(Guid contextId)
        {
            var contextVisit = ContextVisits.SingleOrDefault(x => x.ContextId == contextId);

            if (contextVisit != null)
            {
                return(contextVisit);
            }

            contextVisit = new ContextVisit {
                ContextId = contextId
            };
            ContextVisits.Add(contextVisit);
            return(contextVisit);
        }