Bootstrapper RunStartupConfiguration()
{
var logger = Container.Resolve<ILogger>() ?? NullLogger.Instance;
logger.InfoFormat("Starting up in {0}", Directory.GetCurrentDirectory());
logger.InfoFormat("Registering components...");
Container
.ResolveAll<IRegisterComponentsOnStartup>()
.Each(x => x.Configure());
logger.InfoFormat("Configuring components...");
Container
.ResolveAll<IRequireConfigurationOnStartup>()
.Each(x => x.Configure());
logger.InfoFormat("Preparing startup...");
Container
.ResolveAll<IPrepareStartup>()
.Each(x => x.Prepare());
logger.InfoFormat("Startup complete");
return this;
}