internal static GenericIPBlockingTask FromXML(XElement element) { GenericIPBlockingTask t = new GenericIPBlockingTask() { Name = element.Name.LocalName }; t.Description = element.Element("Description").Value.Trim(); t._lockTime = int.Parse(element.Element("LockTime").Value.Trim()); t.OnlyNew = bool.Parse(element.Element("OnlyNew").Value.Trim()); t.EventAge = int.Parse(element.Element("EventAge").Value.Trim()); t._triggerCount = int.Parse(element.Element("TriggerCount").Value.Trim()); t._permaBanTrigger = int.Parse(element.Element("PermaBanCount").Value.Trim()); t.EventPath = element.Element("EventPath").Value.Trim().Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); foreach (XElement e in element.Element("RegexBoosters").Elements("Booster")) { t._boosters.Add(e.Value.Trim()); } try { t._regex = new Regex(element.Element("Regex").Value.Trim(), RegexOptions.Compiled); } catch { throw new ArgumentException($"Regex not defined or invalid for Task: {t.Name}"); } return(t); }
internal static GenericIPBlockingTask FromConfiguration(IPersistentTaskConfiguration configuration, ILogger logger) { GenericIPBlockingTask t = new GenericIPBlockingTask(logger) { Name = configuration.TaskName, Description = configuration.Description, LockTime = configuration.LockTime, OnlyNew = configuration.OnlyNewEvents, EventAge = configuration.EventAge, TriggerCount = configuration.TriggerCount, PermaBanCount = configuration.PermaBanCount, EventPath = configuration.EventPath.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), Boosters = configuration.RegexBoosters.ToList(), Regex = new Regex(configuration.Regex, RegexOptions.Compiled) }; return(t); }
public IPBlockingLogTask CreateFromConfiguration(IPersistentTaskConfiguration config) { return(GenericIPBlockingTask.FromConfiguration(config, _logger)); }