diff options
author | crupest <crupest@outlook.com> | 2024-11-11 01:12:29 +0800 |
---|---|---|
committer | Yuqian Yang <crupest@crupest.life> | 2024-12-19 21:42:01 +0800 |
commit | a7fb0508867ee53934be18a6606aa8bc12c2645b (patch) | |
tree | 5994f0a62733b13f9f330e3515260ae20dc4a0bd /dropped/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/CrudServiceCollectionExtensions.cs | |
parent | 7692763f83ad1be735b0b9e9ab0af8ce666d8de8 (diff) | |
download | crupest-a7fb0508867ee53934be18a6606aa8bc12c2645b.tar.gz crupest-a7fb0508867ee53934be18a6606aa8bc12c2645b.tar.bz2 crupest-a7fb0508867ee53934be18a6606aa8bc12c2645b.zip |
HALF WORK: 2024.12.19
Re-organize file structure.
Diffstat (limited to 'dropped/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/CrudServiceCollectionExtensions.cs')
-rw-r--r-- | dropped/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/CrudServiceCollectionExtensions.cs | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/dropped/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/CrudServiceCollectionExtensions.cs b/dropped/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/CrudServiceCollectionExtensions.cs new file mode 100644 index 0000000..a7e5193 --- /dev/null +++ b/dropped/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/CrudServiceCollectionExtensions.cs @@ -0,0 +1,34 @@ +using CrupestApi.Commons.Crud.Migrations; +using CrupestApi.Commons.Secrets; +using Microsoft.Extensions.DependencyInjection.Extensions; + +namespace CrupestApi.Commons.Crud; + +public static class CrudServiceCollectionExtensions +{ + public static IServiceCollection AddCrudCore(this IServiceCollection services) + { + services.TryAddSingleton<IDbConnectionFactory, SqliteConnectionFactory>(); + services.TryAddSingleton<IColumnTypeProvider, ColumnTypeProvider>(); + services.TryAddSingleton<ITableInfoFactory, TableInfoFactory>(); + services.TryAddSingleton<IDatabaseMigrator, SqliteDatabaseMigrator>(); + services.AddSecrets(); + return services; + } + + public static IServiceCollection AddCrud<TEntity, TCrudService>(this IServiceCollection services) where TEntity : class where TCrudService : CrudService<TEntity> + { + AddCrudCore(services); + + services.TryAddScoped<CrudService<TEntity>, TCrudService>(); + services.TryAddScoped<EntityJsonHelper<TEntity>>(); + + return services; + } + + public static IServiceCollection AddCrud<TEntity>(this IServiceCollection services) where TEntity : class + { + return services.AddCrud<TEntity, CrudService<TEntity>>(); + } + +} |