aboutsummaryrefslogtreecommitdiff
path: root/dropped/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/CrudServiceCollectionExtensions.cs
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2024-11-11 01:12:29 +0800
committerYuqian Yang <crupest@crupest.life>2024-12-19 21:42:01 +0800
commitf9aa02ec1a4c24e80a206857d4f68198bb027bb4 (patch)
tree5994f0a62733b13f9f330e3515260ae20dc4a0bd /dropped/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/CrudServiceCollectionExtensions.cs
parent7b4d49e4bbdff6ddf1f8f7e937130e700024d5e9 (diff)
downloadcrupest-f9aa02ec1a4c24e80a206857d4f68198bb027bb4.tar.gz
crupest-f9aa02ec1a4c24e80a206857d4f68198bb027bb4.tar.bz2
crupest-f9aa02ec1a4c24e80a206857d4f68198bb027bb4.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.cs34
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>>();
+ }
+
+}