public static void Main() { // Load the log4net configuration var logRepository = LogManager.GetRepository(Assembly.GetEntryAssembly()); XmlConfigurator.Configure(logRepository, new FileInfo("log4net.config")); // Read the app settings var builder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json"); var config = builder.Build(); var azureSearchConfig = config.GetSection("azureSearch").Get <AzureSearchConfig>(); var videoIndexConfig = config.GetSection("videoIndexer").Get <VideoIndexerConfig>(); var readerConfig = config.GetSection("reader").Get <ReaderConfig>(); var writerConfig = config.GetSection("writer").Get <WriterConfig>(); var logger = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); // Build the services var serviceProvider = new ServiceCollection() .AddSingleton <AppHost, AppHost>() .AddSingleton(VideoIndexerFactory.CreateInstance(videoIndexConfig, readerConfig, logger)) .AddSingleton(AzureSearchFactory.CreateInstance(azureSearchConfig, logger)) .AddSingleton(InsightsReaderFactory.CreateInstance(readerConfig, writerConfig, logger)) .AddSingleton(DocumentWriterFactory.CreateInstance(writerConfig, logger)) .AddSingleton(logger) .BuildServiceProvider(); serviceProvider.GetService <AppHost>().Run(); }
private static void BuildJsonDocument(DocumentWriterFactory factory) => factory.Build();