public static IServiceCollection AddStorageModule(this IServiceCollection services, Action <StorageModuleOptions> configureOptions) { var settings = new StorageModuleOptions(); configureOptions(settings); services.Configure(configureOptions); services.AddDbContext <StorageDbContext>(options => options.UseSqlServer(settings.ConnectionStrings.Default, sql => { if (!string.IsNullOrEmpty(settings.ConnectionStrings.MigrationsAssembly)) { sql.MigrationsAssembly(settings.ConnectionStrings.MigrationsAssembly); } })) .AddScoped <IRepository <FileEntry, Guid>, Repository <FileEntry, Guid> >() .AddScoped <IRepository <AuditLogEntry, Guid>, Repository <AuditLogEntry, Guid> >() .AddScoped <IRepository <EventLog, long>, Repository <EventLog, long> >(); DomainEvents.RegisterHandlers(Assembly.GetExecutingAssembly(), services); services.AddMessageHandlers(Assembly.GetExecutingAssembly()); services.AddStorageManager(settings); services.AddAuthorizationPolicies(Assembly.GetExecutingAssembly()); return(services); }
public static IServiceCollection AddStorageModule(this IServiceCollection services, StorageModuleOptions moduleOptions) { services.Configure <StorageModuleOptions>(op => { op.ConnectionStrings = moduleOptions.ConnectionStrings; op.Storage = moduleOptions.Storage; op.MessageBroker = moduleOptions.MessageBroker; }); services.AddDbContext <StorageDbContext>(options => options.UseSqlServer(moduleOptions.ConnectionStrings.Default, sql => { if (!string.IsNullOrEmpty(moduleOptions.ConnectionStrings.MigrationsAssembly)) { sql.MigrationsAssembly(moduleOptions.ConnectionStrings.MigrationsAssembly); } })) .AddScoped <IRepository <FileEntry, Guid>, Repository <FileEntry, Guid> >(); DomainEvents.RegisterHandlers(Assembly.GetExecutingAssembly(), services); services.AddMessageHandlers(Assembly.GetExecutingAssembly()); services.AddStorageManager(moduleOptions.Storage); services.AddMessageBusSender <FileUploadedEvent>(moduleOptions.MessageBroker); services.AddMessageBusSender <FileDeletedEvent>(moduleOptions.MessageBroker); services.AddAuthorizationPolicies(Assembly.GetExecutingAssembly()); return(services); }