public EventHerder(NetLogStash.Config.IConfiguration configuration) { _configuration = configuration; // check configuration validity if (!IsConfigurationValid(configuration)) { throw new NetLogStash.Config.InvalidConfigurationException(configuration); } // initialize keystore KeyStore.Initialize(configuration.KeyStoreLocation); // create pipeline _pipeline = new Pipeline <Event>( configuration.Inputs.Select(i => i.Execute()), configuration.Filters.Select(f => new KeyValuePair <Func <Event, bool>, Func <Event, Event> >(f.Predicate, f.Execute)), configuration.Outputs.Select <IOutput, Action <Event> >(o => o.Execute) ); }
private bool IsConfigurationValid(NetLogStash.Config.IConfiguration configuration) { return(configuration != null && configuration.Inputs != null && configuration.Filters != null && configuration.Outputs != null && configuration.Inputs.Count > 0 && configuration.Outputs.Count > 0); }