/// <summary>
        /// Extends the session by the configured maximum session timeout
        /// </summary>
        public async Task ExtendAsync(TSessionKey sessionId)
        {
            var session = await store.GetAsync(sessionId);

            session.ExpiryDate   = DateTime.Now.Add(MaximumSessionTimeout);
            session.LastActionAt = DateTime.Now;

            await store.UpdateAsync(session);

            logger.LogSystemActivity("User Session Extended", session.ToLogMessage());

            var deletedSessions = await store.ClearSessionsAsync();

            if (deletedSessions.Any())
            {
                logger.LogSystemActivity("Expired User Sessions Deleted", deletedSessions.Select(x => x.ToLogMessage()));
            }
        }