public void SignOut() { // Sync lock (_syncRoot) { // Require if (_currentProperties == null) { return; } // Properties _currentProperties = null; // Client foreach (var client in _clientList) { client.SignOut(); } } }
// Methods public void SignIn(CommunicationProperties currentProperties) { #region Contracts if (currentProperties == null) { throw new ArgumentException(); } #endregion // Sync lock (_syncRoot) { // Properties _currentProperties = currentProperties; // Client foreach (var client in _clientList) { client.SignIn(currentProperties); } } }
// Methods internal protected abstract void SignIn(CommunicationProperties properties);