public void Start()
{
Console.CancelKeyPress += (sender, eventArgs) =>
{
eventArgs.Cancel = true;
_reset.Set();
};
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Information()
.WriteTo.ColoredConsole()
.CreateLogger();
var config = ServiceConfiguration.FromArgs(_args);
try
{
using (var connectionFactory = BrokerConnectionFactory.Create(config.Broker))
{
var brokerStream = connectionFactory.GetBrokerStream();
var esFactory = _factory as IServiceHostFactoryWithEventStore;
if (esFactory != null)
{
// TODO TIDY
var eventStoreConnection = GetEventStoreConnection(config.EventStore);
var mon = new ConnectionStatusMonitor(eventStoreConnection);
var esStream = mon.GetEventStoreConnectedStream(eventStoreConnection);
eventStoreConnection.ConnectAsync().Wait();
using (esFactory.Initialize(brokerStream, esStream))
{
connectionFactory.Start();
_reset.WaitOne();
}
}
else
{
using (_factory.Initialize(brokerStream))
{
connectionFactory.Start();
_reset.WaitOne();
}
}
}
}
catch (Exception e)
{
Log.Error(e, "Error connecting to broker");
}
}