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); }