Dovetail.SDK.Bootstrap.Clarify.ClarifySessionCache.EjectSession C# (CSharp) Метод

EjectSession() публичный Метод

public EjectSession ( string username, bool isObserved = true ) : bool
username string
isObserved bool
Результат bool
        public bool EjectSession(string username, bool isObserved = true)
        {
            using (_logger.Push("Ejecting session for {0}.".ToFormat(username)))
            {
                if (!_agentSessionCacheByUsername.ContainsKey(username))
                {
                    _logger.LogDebug("No session was found for the user.");
                    return false;
                }

                IClarifySession session;
                lock (_agentSessionCacheByUsername)
                {
                    if (!_agentSessionCacheByUsername.ContainsKey(username))
                    {
                        _logger.LogDebug("Session was there when we started but someone else ejected it.");
                        return false;
                    }

                    session = _agentSessionCacheByUsername[username];
                    _agentSessionCacheByUsername.Remove(username);

                    _logger.LogDebug("{0} sessions are now in the cache.", _agentSessionCacheByUsername.Count);
                }

                if (session == null) return true;

                if (isObserved)
                {
                    _logger.LogDebug("Expiring session {0}.", session.Id);
                    _sessionEndObserver().SessionExpired(session);
                }

                _logger.LogDebug("Closing session {0}.", session.Id);
                session.Close();
            }

            return true;
        }