Exemple #1
0
        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;
            }
        }
Exemple #2
0
        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;
                }
            }
        }