private static int InvokeRun(Options options) { int toReturn = -1; SchoolInformationStorageAdapterSettingsProvider schoolInformationStorageAdapterSettingsProvider = new SchoolInformationStorageAdapterSettingsProvider( options.StorageConnectionString, options.TableName); LocalAuthorityInformationStorageAdapterSettingsProvider localAuthorityInformationStorageAdapterSettingsProvider = new LocalAuthorityInformationStorageAdapterSettingsProvider( options.StorageConnectionString, options.TableName); using (ServiceProvider serviceProvider = CreateServiceProvider(schoolInformationStorageAdapterSettingsProvider, localAuthorityInformationStorageAdapterSettingsProvider)) { IProgram program = serviceProvider.GetService <IProgram>(); CancellationToken cancellationToken = CancellationToken.None; Task <int> runAsyncTask = program.RunAsync( options, cancellationToken); toReturn = runAsyncTask.Result; } return(toReturn); }
private static ServiceProvider CreateServiceProvider( SchoolInformationStorageAdapterSettingsProvider schoolInformationStorageAdapterSettingsProvider, LocalAuthorityInformationStorageAdapterSettingsProvider localAuthorityInformationStorageAdapter) { ServiceProvider toReturn = new ServiceCollection() .AddScoped <ILoggerWrapper, LoggerWrapper>() .AddSingleton <ISchoolInformationStorageAdapterSettingsProvider>(schoolInformationStorageAdapterSettingsProvider) .AddSingleton <ILocalAuthorityInformationStorageAdapterSettingsProvider>(localAuthorityInformationStorageAdapter) .AddScoped <ISchoolInformationStorageAdapter, SchoolInformationStorageAdapter>() .AddScoped <ILocalAuthorityInformationStorageAdapter, LocalAuthorityInformationStorageAdapter>() .AddScoped <IConfigurationFileReader, ConfigurationFileReader>() .AddScoped <ISpreadsheetReader, SpreadsheetReader>() .AddScoped <ISpreadsheetProcessor, SpreadsheetProcessor>() .AddScoped <IProgram, Program>() .BuildServiceProvider(); return(toReturn); }