private void OnTransition() { _lock.EnterWriteLock(); try { // - unassign all sessions // - get all sessions from the queue // - assing session to the new team and keep the sessions order the same _teamManager.UnAssignAllSession(); var sessions = _sessionQueue.DequeueAll(); foreach (var session in sessions) { session.Status = SessionStatus.None; session.AgentInfo = null; StoreSession(session); } } finally { _lock.ExitWriteLock(); } }