private void ProcessSkillConfigurations(SkillConfigurationList skillConfigurationList) { lock (ProcessingLock) try { if (skillConfigurationList != null) { var skills = skillConfigurationList.GetConfigurationList(); if (!_skills.Any() && skills.Any()) { foreach (var skillConfiguration in skills) { CreateSkill(skillConfiguration.ConfigurationId.Id, skillConfiguration.ConfigurationId.DisplayName); } _skills = skills; CheckForDeleted(); } else if (SkillsChanged(skills)) { foreach (var skillConfiguration in skills) { CreateSkill(skillConfiguration.ConfigurationId.Id, skillConfiguration.ConfigurationId.DisplayName); } _skills = skills; CheckForDeleted(); } } } catch (Exception exception) { _logging.TraceException(exception, "SkillConfigurations Error"); } }
private void StartWatchingSkills() { try { if (_configurationManager != null && _configurationManager.Session != null && _configurationManager.Session.ConnectionState == ConnectionState.Up) { _skillConfigurationList = new SkillConfigurationList(_configurationManager); var querySettings = _skillConfigurationList.CreateQuerySettings(); querySettings.SetResultCountLimit(QueryResultLimit.Unlimited); //var properties = new List<SkillConfiguration.Property> //{ // SkillConfiguration.Property.Id, // SkillConfiguration.Property.DisplayName, // SkillConfiguration.Property.UserAssignments, // SkillConfiguration.Property.WorkgroupAssignments //}; //querySettings.SetPropertiesToRetrieve(properties); using (var repository = Repository) { if (!repository.Skills.Any()) { _skillConfigurationList.StartCaching(querySettings); var skills = _skillConfigurationList.GetConfigurationList(); _skillConfigurationList.StopCaching(); if (skills.Any()) { foreach (var skillConfiguration in skills) { CreateSkill(skillConfiguration.ConfigurationId.Id, skillConfiguration.ConfigurationId.DisplayName); } _skills = skills; } } } _skillConfigurationList.ConfigurationObjectsRemoved += Skills_ConfigurationObjectsRemoved; _skillConfigurationList.StartWatchingAsync(querySettings, Skills_StartOrRefreshWatchingCompleted, null); } } catch (Exception e) { _logging.TraceException(e, "SkillConfigurations Error"); } }