From b1574678756c04677859061ef2cd676233246f3f Mon Sep 17 00:00:00 2001 From: crupest Date: Tue, 13 Dec 2022 11:14:30 +0800 Subject: Develop secret api. v33 --- .../CrupestApi.Commons/Crud/ColumnMetadata.cs | 33 ++++++++-------------- 1 file changed, 11 insertions(+), 22 deletions(-) (limited to 'docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/ColumnMetadata.cs') diff --git a/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/ColumnMetadata.cs b/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/ColumnMetadata.cs index c02f776..1082ea4 100644 --- a/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/ColumnMetadata.cs +++ b/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/ColumnMetadata.cs @@ -20,10 +20,17 @@ public static class ColumnMetadataKeys /// /// The default value generator method name in entity type. Default to null, aka, search for ColumnNameDefaultValueGenerator. + /// Generator has signature static void DefaultValueGenerator(ColumnInfo column) /// - /// public const string DefaultValueGenerator = nameof(ColumnAttribute.DefaultValueGenerator); + /// + /// The validator method name in entity type. Default to null, aka, the default validator. + /// Validator has signature static void Validator(ColumnInfo column, object value) + /// Value param is never null. If you want to mean NULL, it should be a . + /// + public const string Validator = nameof(ColumnAttribute.Validator); + /// /// The column can only be set when inserted, can't be changed in update. /// @@ -34,24 +41,6 @@ public static class ColumnMetadataKeys /// This column acts as key when get one entity for http get method in path. /// public const string ActAsKey = nameof(ColumnAttribute.ActAsKey); - - /// - /// Define what to do when update. - /// - public const string UpdateBehavior = nameof(ColumnAttribute.UpdateBehavior); -} - -[Flags] -public enum UpdateBehavior -{ - /// - /// Null value means do not update that column. - /// - NullIsNotUpdate = 0, - /// - /// Null value means set to null. - /// - NullIsSetNull = 1 } public interface IColumnMetadata @@ -125,15 +114,15 @@ public class ColumnAttribute : Attribute, IColumnMetadata /// public string? DefaultValueGenerator { get; init; } + /// + public string? Validator { get; init; } + /// public bool NoUpdate { get; init; } /// public bool ActAsKey { get; init; } - /// - public UpdateBehavior UpdateBehavior { get; init; } = UpdateBehavior.NullIsNotUpdate; - public bool TryGetValue(string key, out object? value) { var property = GetType().GetProperty(key); -- cgit v1.2.3