private void StartWatchingUsers() { //_logging.LogNote("StartWatchingUsers"); try { if (_configurationManager != null && _configurationManager.Session != null && _configurationManager.Session.ConnectionState == ConnectionState.Up) { _userConfigurationList = new UserConfigurationList(_configurationManager); var querySettings = _userConfigurationList.CreateQuerySettings(); querySettings.SetResultCountLimit(QueryResultLimit.Unlimited); var properties = new List <UserConfiguration.Property> { UserConfiguration.Property.Id, UserConfiguration.Property.DisplayName, UserConfiguration.Property.Utilizations, UserConfiguration.Property.Skills, UserConfiguration.Property.License_LicenseActive, UserConfiguration.Property.License_HasClientAccess, UserConfiguration.Property.License_MediaLevel, UserConfiguration.Property.License_MediaTypes, UserConfiguration.Property.Workgroups }; querySettings.SetPropertiesToRetrieve(properties); using (var repository = Repository) { if (!repository.Agents.Any()) { _userConfigurationList.StartCaching(querySettings); var users = _userConfigurationList.GetConfigurationList(); _userConfigurationList.StopCaching(); if (users.Any()) { foreach (var userConfiguration in users) { CreateAgent(userConfiguration); } _users = users; } } } _userConfigurationList.ConfigurationObjectsRemoved += Users_ConfigurationObjectsRemoved; _userConfigurationList.ConfigurationObjectsChanged += Users_ConfigurationObjectsChanged; _userConfigurationList.StartWatchingAsync(querySettings, Users_StartOrRefreshWatchingCompleted, null); } } catch (Exception e) { _logging.LogException(e); _logging.TraceException(e, "AgentConfigurations Error"); } }