diff options
| author | crupest <crupest@outlook.com> | 2022-12-22 19:05:24 +0800 | 
|---|---|---|
| committer | crupest <crupest@outlook.com> | 2022-12-22 19:05:24 +0800 | 
| commit | 93924947fecca4ddad670f1f1768f32063cfec3a (patch) | |
| tree | 7cba2f6f947c2f88c386fe13ee68d38d8c6dfc4b /docker/crupest-api/CrupestApi/CrupestApi.Commons | |
| parent | 3469ac050b13b73d76f13dcbdfa77a1aefc49ae0 (diff) | |
| download | crupest-93924947fecca4ddad670f1f1768f32063cfec3a.tar.gz crupest-93924947fecca4ddad670f1f1768f32063cfec3a.tar.bz2 crupest-93924947fecca4ddad670f1f1768f32063cfec3a.zip | |
Develop secret api. v59
Diffstat (limited to 'docker/crupest-api/CrupestApi/CrupestApi.Commons')
4 files changed, 16 insertions, 17 deletions
| diff --git a/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/ColumnInfo.cs b/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/ColumnInfo.cs index 7f1782b..30b75af 100644 --- a/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/ColumnInfo.cs +++ b/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/ColumnInfo.cs @@ -60,9 +60,9 @@ public class ColumnInfo      public bool IsPrimaryKey => Metadata.GetValueOrDefault(ColumnMetadataKeys.IsPrimaryKey) is true;      public bool IsAutoIncrement => Metadata.GetValueOrDefault(ColumnMetadataKeys.IsAutoIncrement) is true;      public bool IsNotNull => IsPrimaryKey || Metadata.GetValueOrDefault(ColumnMetadataKeys.NotNull) is true; -    public bool IsGenerated => Metadata.GetValueOrDefault(ColumnMetadataKeys.Generated) is true; +    public bool IsOnlyGenerated => Metadata.GetValueOrDefault(ColumnMetadataKeys.OnlyGenerated) is true;      public bool IsNoUpdate => Metadata.GetValueOrDefault(ColumnMetadataKeys.NoUpdate) is true; -    public bool CanBeGenerated => (bool?)Metadata.GetValueOrDefault(ColumnMetadataKeys.CanBeGenerated) ?? (DefaultValueGeneratorMethod is not null || IsAutoIncrement); +    public object? DefaultValue => Metadata.GetValueOrDefault(ColumnMetadataKeys.DefaultValue);      /// <summary>      /// This only returns metadata value. It doesn't not fall back to primary column. If you want to get the real key column, go to table info.      /// </summary> @@ -72,6 +72,11 @@ public class ColumnInfo      public ColumnIndexType Index => Metadata.GetValueOrDefault<ColumnIndexType?>(ColumnMetadataKeys.Index) ?? ColumnIndexType.None;      /// <summary> +    /// Whether the column value can be generated, which means the column has a default value or a default value generator or is AUTOINCREMENT. +    /// </summary> +    public bool CanBeGenerated => DefaultValue is not null || DefaultValueGeneratorMethod is not null || IsAutoIncrement; + +    /// <summary>      /// The real column name. Maybe set in metadata or just the property name.      /// </summary>      /// <value></value> diff --git a/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/ColumnMetadata.cs b/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/ColumnMetadata.cs index 26f6105..0ee2837 100644 --- a/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/ColumnMetadata.cs +++ b/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/ColumnMetadata.cs @@ -16,7 +16,7 @@ public static class ColumnMetadataKeys      /// <summary>      /// This indicates that you take care of generate this column value when create entity. User calling the api can not specify the value.      /// </summary> -    public const string Generated = nameof(ColumnAttribute.Generated); +    public const string OnlyGenerated = nameof(ColumnAttribute.OnlyGenerated);      /// <summary>      /// The default value generator method name in entity type. Default to null, aka, search for ColumnNameDefaultValueGenerator.  @@ -42,14 +42,10 @@ public static class ColumnMetadataKeys      /// </summary>      public const string ActAsKey = nameof(ColumnAttribute.ActAsKey); -    public const string DefaultValue = nameof(ColumnAttribute.DefaultValue); -      /// <summary> -    /// Default value is null, aka, whether a default value generator is specified. -    /// Set to true or false to override it. +    /// The default value used for the column.      /// </summary> -    /// <returns></returns> -    public const string CanBeGenerated = nameof(ColumnAttribute.CanBeGenerated); +    public const string DefaultValue = nameof(ColumnAttribute.DefaultValue);  }  public interface IColumnMetadata @@ -117,8 +113,8 @@ public class ColumnAttribute : Attribute, IColumnMetadata      /// <seealso cref="ColumnMetadataKeys.DefaultEmptyForString"/>      public bool DefaultEmptyForString { get; init; } -    /// <seealso cref="ColumnMetadataKeys.Generated"/> -    public bool Generated { get; init; } +    /// <seealso cref="ColumnMetadataKeys.OnlyGenerated"/> +    public bool OnlyGenerated { get; init; }      /// <seealso cref="ColumnMetadataKeys.DefaultValueGenerator"/>      public string? DefaultValueGenerator { get; init; } @@ -134,8 +130,6 @@ public class ColumnAttribute : Attribute, IColumnMetadata      public object? DefaultValue { get; init; } -    public bool? CanBeGenerated { get; init; } = null; -      public bool TryGetValue(string key, out object? value)      {          var property = GetType().GetProperty(key); diff --git a/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/EntityJsonHelper.cs b/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/EntityJsonHelper.cs index 39c7b43..406e214 100644 --- a/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/EntityJsonHelper.cs +++ b/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/EntityJsonHelper.cs @@ -86,7 +86,7 @@ public class EntityJsonHelper<TEntity> where TEntity : class          {              if (jsonElement.TryGetProperty(column.ColumnName, out var jsonValue))              { -                if (column.IsGenerated) +                if (column.IsOnlyGenerated)                  {                      throw new UserException($"Property {column.ColumnName} is auto generated, you cannot set it.");                  } @@ -146,7 +146,7 @@ public class EntityJsonHelper<TEntity> where TEntity : class          {              if (jsonElement.TryGetProperty(column.ColumnName, out var jsonValue))              { -                if (column.IsGenerated) +                if (column.IsOnlyGenerated)                  {                      throw new UserException($"Property {column.ColumnName} is auto generated, you cannot set it.");                  } diff --git a/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/TableInfo.cs b/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/TableInfo.cs index e9f2d85..bc580f2 100644 --- a/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/TableInfo.cs +++ b/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/TableInfo.cs @@ -157,7 +157,7 @@ public class TableInfo      {          foreach (var column in Columns)          { -            if (column.IsGenerated && column.DefaultValueGeneratorMethod is null) +            if (column.IsOnlyGenerated && column.DefaultValueGeneratorMethod is null)              {                  throw new Exception($"Column '{column.ColumnName}' is generated but has no generator.");              } @@ -504,7 +504,7 @@ CREATE TABLE {tableName}(              var value = item?.Value; -            if (column.IsGenerated && value is not null) +            if (column.IsOnlyGenerated && value is not null)              {                  throw new Exception($"The column '{column.ColumnName}' is auto generated. You can't specify it explicitly.");              } | 
