diff options
author | crupest <crupest@outlook.com> | 2022-12-09 18:22:20 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2022-12-20 20:32:53 +0800 |
commit | a586767b9b6e122891a8cddba57aecef11ef4bd2 (patch) | |
tree | 058f34a17aa0cff56c702ace3f84d1918e541789 /docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/ColumnInfo.cs | |
parent | bed807e3f8fab2f8b6ea3409886aac9f23f0f761 (diff) | |
download | crupest-a586767b9b6e122891a8cddba57aecef11ef4bd2.tar.gz crupest-a586767b9b6e122891a8cddba57aecef11ef4bd2.tar.bz2 crupest-a586767b9b6e122891a8cddba57aecef11ef4bd2.zip |
Develop secret api. v21
Diffstat (limited to 'docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/ColumnInfo.cs')
-rw-r--r-- | docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/ColumnInfo.cs | 39 |
1 files changed, 27 insertions, 12 deletions
diff --git a/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/ColumnInfo.cs b/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/ColumnInfo.cs index e67b7c0..d278d23 100644 --- a/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/ColumnInfo.cs +++ b/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/ColumnInfo.cs @@ -8,17 +8,21 @@ public class ColumnHooks { public delegate void ColumnHookAction(ColumnInfo column, ref object? value); - public ColumnHooks(ColumnHookAction afterGet, ColumnHookAction beforeSet) + public ColumnHooks(ColumnHookAction afterSelect, ColumnHookAction beforeInsert, ColumnHookAction beforeUpdate) { - AfterGet = afterGet; - BeforeSet = beforeSet; + AfterSelect = afterSelect; + BeforeInsert = beforeInsert; + BeforeUpdate = beforeUpdate; } // Called after SELECT. - public ColumnHookAction AfterGet; + public ColumnHookAction AfterSelect; - // Called before UPDATE and INSERT. - public ColumnHookAction BeforeSet; + // Called before INSERT. + public ColumnHookAction BeforeInsert; + + // Called before UPDATE + public ColumnHookAction BeforeUpdate; } public class ColumnInfo @@ -32,8 +36,9 @@ public class ColumnInfo ColumnType = typeProvider.Get(clrType); Hooks = new ColumnHooks( - new ColumnHooks.ColumnHookAction(OnAfterGet), - new ColumnHooks.ColumnHookAction(OnBeforeSet) + new ColumnHooks.ColumnHookAction(OnAfterSelect), + new ColumnHooks.ColumnHookAction(OnBeforeInsert), + new ColumnHooks.ColumnHookAction(OnBeforeUpdate) ); } @@ -49,8 +54,9 @@ public class ColumnInfo } Hooks = new ColumnHooks( - new ColumnHooks.ColumnHookAction(OnAfterGet), - new ColumnHooks.ColumnHookAction(OnBeforeSet) + new ColumnHooks.ColumnHookAction(OnAfterSelect), + new ColumnHooks.ColumnHookAction(OnBeforeInsert), + new ColumnHooks.ColumnHookAction(OnBeforeUpdate) ); } @@ -72,12 +78,21 @@ public class ColumnInfo } } - protected void OnAfterGet(ColumnInfo column, ref object? value) + protected void OnAfterSelect(ColumnInfo column, ref object? value) { TryCoerceStringFromNullToEmpty(ref value); } - protected void OnBeforeSet(ColumnInfo column, ref object? value) + protected void OnBeforeInsert(ColumnInfo column, ref object? value) + { + TryCoerceStringFromNullToEmpty(ref value); + if (column.IsNotNull && !column.IsAutoIncrement) + { + throw new Exception($"Column {column.ColumnName} can't be empty."); + } + } + + protected void OnBeforeUpdate(ColumnInfo column, ref object? value) { TryCoerceStringFromNullToEmpty(ref value); } |