Skip to content

Commit 2b71de5

Browse files
committed
feat: 🎉 update model.mustache to conditionally apply JsonRequired attribute and enhance EmitDefaultValue and JsonIgnoreCondition attributes
1 parent 2892eb2 commit 2b71de5

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

‎src/main/resources/aspnetcore-di/model.mustache‎

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,14 +56,15 @@ namespace {{modelPackage}}
5656
/// </summary>{{#description}}
5757
/// <value>{{.}}</value>{{/description}}{{#example}}
5858
/* <example>{{.}}</example> */{{/example}}{{#required}}
59-
[Required]{{/required}}{{#pattern}}
59+
[Required]{{^aspnetCoreVersion6}}
60+
[JsonRequired]{{/aspnetCoreVersion6}}{{/required}}{{#pattern}}
6061
[RegularExpression("{{{.}}}")]{{/pattern}}{{#minLength}}{{#maxLength}}
6162
[StringLength({{maxLength}}, MinimumLength={{minLength}})]{{/maxLength}}{{/minLength}}{{#minLength}}{{^maxLength}}
6263
[MinLength({{minLength}})]{{/maxLength}}{{/minLength}}{{^minLength}}{{#maxLength}}
6364
[MaxLength({{.}})]{{/maxLength}}{{/minLength}}{{#minimum}}{{#maximum}}
6465
[Range({{minimum}}, {{maximum}})]{{/maximum}}{{/minimum}}
65-
[DataMember(Name="{{baseName}}", EmitDefaultValue={{#isNullable}}true{{/isNullable}}{{^isNullable}}{{#vendorExtensions.x-is-value-type}}true{{/vendorExtensions.x-is-value-type}}{{^vendorExtensions.x-is-value-type}}false{{/vendorExtensions.x-is-value-type}}{{/isNullable}})]
66-
[JsonPropertyName("{{baseName}}"){{^isNullable}}{{#nullableReferenceTypes}}, JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull){{/nullableReferenceTypes}}{{^nullableReferenceTypes}}{{#vendorExtensions.x-is-reference-type}}, JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull){{/vendorExtensions.x-is-reference-type}}{{/nullableReferenceTypes}}{{/isNullable}}]
66+
[DataMember(Name="{{baseName}}", EmitDefaultValue={{#isNullable}}true{{/isNullable}}{{^isNullable}}{{#required}}false{{/required}}{{^required}}{{#vendorExtensions.x-is-value-type}}{{#defaultValue}}true{{/defaultValue}}{{^defaultValue}}false{{/defaultValue}}{{/vendorExtensions.x-is-value-type}}{{^vendorExtensions.x-is-value-type}}false{{/vendorExtensions.x-is-value-type}}{{/required}}{{/isNullable}})]
67+
[JsonPropertyName("{{baseName}}"){{#nullableReferenceTypes}}{{^isContainer}}{{^required}}{{^isNullable}}, JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull){{/isNullable}}{{/required}}{{/isContainer}}{{/nullableReferenceTypes}}{{^nullableReferenceTypes}}{{#vendorExtensions.x-is-reference-type}}{{^isNullable}}{{^required}}, JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull){{/required}}{{/isNullable}}{{/vendorExtensions.x-is-reference-type}}{{#vendorExtensions.x-is-value-type}}{{^required}}, JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingDefault){{/required}}{{/vendorExtensions.x-is-value-type}}{{/nullableReferenceTypes}}]
6768
{{#isEnum}}
6869
public {{{datatypeWithEnum}}}{{#isNullable}}?{{/isNullable}} {{name}} { get; set; }{{#defaultValue}} = {{{.}}};{{/defaultValue}}
6970
{{/isEnum}}

0 commit comments

Comments
 (0)