public static void AddApplicationOptions(this IServiceCollection services, IConfiguration configuration) { services.AddDbContext <AppContext>(options => options.UseNpgsql(configuration["ConnectionString"])); services.AddMailKit(optionBuilder => { optionBuilder.UseMailKit( configuration .GetSection("MailKitConfig") .Get <MailKitOptions>()); }); services.AddSingleton( configuration .GetSection("ObjectStorageConfig") .Get <ObjectStorageConfig>()); var setup = new ObjectStorageConfig(); configuration.Bind("ObjectStorageConfig", setup); services.AddScoped <IObjectStorageService, ObjectStorageService>(provider => { var config = new AmazonS3Config { ServiceURL = setup.ServiceUrl, ForcePathStyle = true }; var client = new AmazonS3Client(setup.AccessKey, setup.SecretKey, config); var logger = provider.GetRequiredService <ILogger <ObjectStorageService> >(); return(new ObjectStorageService(client, logger)); }); }
public SubdivisionUseCases( SubdivisionRepository subdivisionRepository, ObjectStorageConfig config, IEditorManager editorManager, IFileUseCases fileUseCases, INotificationUseCases notificationUseCases, IExhibitUseCases exhibitUseCases) { _subdivisionRepository = subdivisionRepository; _config = config; _editorManager = editorManager; _fileUseCases = fileUseCases; _notificationUseCases = notificationUseCases; _exhibitUseCases = exhibitUseCases; }