private bool TryValidate() { if (_analysis.Status != AFStatus.Enabled) { Console.WriteLine("'{0}' is not enabled.", _analysis.GetPath()); return(false); } _configuration = _analysis.AnalysisRule.GetConfiguration(); if (_configuration.HasExceptions) { var exceptionGroups = _configuration.ConfigurationExceptions.ToLookup(ex => ex.Severity); Console.WriteLine("Configuration warnings: {0}", exceptionGroups[AFAnalysisErrorSeverity.Warning].Count()); foreach (var warning in exceptionGroups[AFAnalysisErrorSeverity.Warning]) { Console.WriteLine("\t{0}", warning.Message); } // warnings mean ok to run, but something may not work quite as expected. int errorCount = exceptionGroups[AFAnalysisErrorSeverity.Error].Count(); Console.WriteLine("Configuration errors: {0}", errorCount); foreach (var error in exceptionGroups[AFAnalysisErrorSeverity.Error]) { Console.WriteLine("\t{0}", error.Message); } // can't run if there are errors. if (errorCount > 0) { return(false); } } var inputs = _configuration.GetInputs(); var outputs = _configuration.GetOutputs(); foreach (var output in outputs) { if (inputs.Any(ip => ip.ID == output.ID)) { Console.WriteLine("This approach for evaluating analyses does not support using same attribute(s) as input as well output. ('{0}')", output.Name); return(false); } } return(true); }
public OutputHandler(AFAnalysisRuleConfiguration configuration) { _configuration = configuration; _values = new List <AFValue>(); _eventFrames = new List <AFEventFrame>(); }