internal static XmlTaskConfig FromXmlElement(XElement taskConfig, object syncObject, ILogger logger) { try { _isLoading = true; var newTask = new XmlTaskConfig(taskConfig.Attribute("Name").Value.Trim(), syncObject, logger) { Active = bool.Parse(taskConfig.Attribute("Active").Value), Description = taskConfig.Element("Description").Value.Trim() ?? "<indescript Task>", LockTime = int.Parse(taskConfig.Element("LockTime").Value.Trim()), OnlyNewEvents = bool.Parse(taskConfig.Element("OnlyNew").Value.Trim()), EventAge = int.Parse(taskConfig.Element("EventAge").Value.Trim()), TriggerCount = int.Parse(taskConfig.Element("TriggerCount").Value.Trim()), PermaBanCount = int.Parse(taskConfig.Element("PermaBanCount").Value.Trim()), EventPath = taskConfig.Element("EventPath").Value.Trim(), Regex = taskConfig.Element("Regex").Value.Trim() }; foreach (var regexBoosterNode in taskConfig.Element("RegexBoosters").Descendants("Booster")) { newTask.AddRegexBooster(regexBoosterNode.Value); } return(newTask); } finally { _isLoading = false; } }
private void LoadGenericTasks(XDocument d) { //clear in case of reload _taskConfigurations.Clear(); foreach (var taskNode in d.Descendants("Task").Where(t => t.Attribute("Name") != null)) { try { //TODO: Dependency Injection var loadedTask = XmlTaskConfig.FromXmlElement(taskNode, _syncObject, _logger); _taskConfigurations.Add(loadedTask); _logger.Dump($"loaded configuration for generic task \"{loadedTask.TaskName}\"({(loadedTask.Active ? "active" : "inactive")})", SeverityLevel.Debug); } catch (Exception ex) { _logger.Dump(ex); throw; } } }