Skip to content

Commit 36b8533

Browse files
committed
fix: dotnet template
1 parent 3670119 commit 36b8533

File tree

1 file changed

+42
-27
lines changed

1 file changed

+42
-27
lines changed

templates/dotnet/Package/Models/Model.cs.twig

Lines changed: 42 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -38,35 +38,50 @@ namespace {{ spec.title | caseUcfirst }}.Models
3838
{%~ endif %}
3939
}
4040

41-
public static {{ definition.name | caseUcfirst | overrideIdentifier}} From(Dictionary<string, object> map) => new {{ definition.name | caseUcfirst | overrideIdentifier}}(
42-
{%- for property in definition.properties -%}
43-
{{ property.name | caseCamel | escapeKeyword | removeDollarSign }}: {%- if property.sub_schema -%}
44-
{%- if property.type == 'array' -%}
45-
((JArray)map["{{ property.name }}"]).ToObject<List<Dictionary<string, object>>>().Select(it => {{property.sub_schema | caseUcfirst | overrideIdentifier}}.From(map: it)).ToList()
46-
{%- else -%}
47-
{{property.sub_schema | caseUcfirst | overrideIdentifier}}.From(map: ((JObject)map["{{ property.name }}"]).ToObject<Dictionary<string, object>>()!)
48-
{%- endif -%}
49-
{%- else -%}
50-
{%- if property.type == 'array' -%}
41+
public static {{ definition.name | caseUcfirst | overrideIdentifier }} From(Dictionary<string, object> map) => new {{ definition.name | caseUcfirst | overrideIdentifier }}(
42+
{%- for property in definition.properties %}
43+
{{ property.name | caseCamel | escapeKeyword | removeDollarSign }}:
44+
{%- if property.sub_schema %}
45+
{%- if property.type == 'array' %}
46+
((JArray)map["{{ property.name }}"])
47+
.ToObject<List<Dictionary<string, object>>>()
48+
.Select(it => {{ property.sub_schema | caseUcfirst | overrideIdentifier }}.From(map: it))
49+
.ToList()
50+
{%- else %}
51+
{{ property.sub_schema | caseUcfirst | overrideIdentifier }}.From(
52+
map: ((JObject)map["{{ property.name }}"])
53+
.ToObject<Dictionary<string, object>>()!
54+
)
55+
{%- endif %}
56+
{%- else %}
57+
{%- if property.type == 'array' %}
5158
((JArray)map["{{ property.name }}"]).ToObject<{{ property | typeName }}>()
52-
{%- else -%}
53-
{%- if property.type == "integer" or property.type == "number" -%}
54-
{%- if not property.required -%}map["{{ property.name }}"] == null ? null : {%- endif -%}
55-
Convert.To{%- if property.type == "integer" -%}Int64{%- else -%}Double{%- endif -%}(map["{{ property.name }}"])
56-
{%- else -%}
57-
{%- if property.type == "boolean" -%}
58-
({{ property | typeName }}{%- if not property.required -%}?{%- endif -%})map["{{ property.name }}"]
59-
{%- else -%}
60-
map{%- if not property.required -%}.TryGetValue("{{ property.name }}", out var {{ property.name | caseCamel | escapeKeyword | removeDollarSign }}) ? {{ property.name | caseCamel | escapeKeyword | removeDollarSign }}?.ToString() : null{%- else -%}["{{ property.name }}"]{%- if not property.required -%}?{%- endif -%}.ToString()
61-
{%- endif -%}
62-
{%- endif -%}
63-
{%- endif -%}
64-
{%- endif -%}
65-
{%- if not loop.last or (loop.last and definition.additionalProperties) -%},{%- endif -%}
66-
{%- endfor -%}
67-
{%- if definition.additionalProperties -%}
59+
{%- else %}
60+
{%- if property.type == "integer" or property.type == "number" %}
61+
{%- if not property.required %}
62+
map["{{ property.name }}"] == null ? null :
63+
{%- endif %}
64+
Convert.To{% if property.type == "integer" %}Int64{% else %}Double{% endif %}(map["{{ property.name }}"])
65+
{%- else %}
66+
{%- if property.type == "boolean" %}
67+
({{ property | typeName }}{% if not property.required %}?{% endif %})map["{{ property.name }}"]
68+
{%- else %}
69+
map
70+
{%- if not property.required %}
71+
.TryGetValue("{{ property.name }}", out var {{ property.name | caseCamel | escapeKeyword | removeDollarSign }}) ?
72+
{{ property.name | caseCamel | escapeKeyword | removeDollarSign }}?.ToString() : null
73+
{%- else %}
74+
["{{ property.name }}"]{% if not property.required %}?{% endif %}.ToString()
75+
{%- endif %}
76+
{%- endif %}
77+
{%- endif %}
78+
{%- endif %}
79+
{%- endif %}
80+
{%- if not loop.last or (loop.last and definition.additionalProperties) %},{% endif %}
81+
{%- endfor %}
82+
{%- if definition.additionalProperties %}
6883
data: map
69-
{%- endif -%}
84+
{%- endif %}
7085
);
7186

7287
public Dictionary<string, object?> ToMap() => new Dictionary<string, object?>()

0 commit comments

Comments
 (0)