Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
 public IPBlockingLogTask CreateFromConfiguration(IPersistentTaskConfiguration config)
 {
     return(GenericIPBlockingTask.FromConfiguration(config, _logger));
 }