Skip to content

Commit 0a9e28a

Browse files
authored
Merge pull request #1144 from swagger-api/dotnet-oneof
Support for OneOf in Model for DotNet Generators
2 parents 11d1bd3 + 40d89b5 commit 0a9e28a

File tree

4 files changed

+38
-4
lines changed

4 files changed

+38
-4
lines changed

src/main/resources/handlebars/aspnetcore/model.mustache

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,14 @@ using Newtonsoft.Json;
1313
{{#models}}
1414
{{#model}}
1515
namespace {{packageName}}.Models
16-
{ {{#isEnum}}{{>enumClass}}{{/isEnum}}{{^isEnum}}
16+
{
17+
{{^isComposedModel}}
18+
{{#isEnum}}{{>enumClass}}{{/isEnum}}{{^isEnum}}
1719
/// <summary>
1820
/// {{description}}
1921
/// </summary>
2022
[DataContract]
21-
public partial class {{classname}} : {{#parent}}{{{parent}}}, {{/parent}}IEquatable<{{classname}}>
23+
public partial class {{classname}} : {{#parent}}{{{parent}}}, {{/parent}}IEquatable<{{classname}}>{{#interfaceModels}}{{#@first}}, {{/@first}}{{classname}}{{^@last}}, {{/@last}}{{#@last}} {{/@last}}{{/interfaceModels}}
2224
{ {{#vars}}{{#isEnum}}{{^isContainer}}{{>enumClass}}{{/isContainer}}{{/isEnum}}{{#items.isEnum}}{{#items}}{{^isContainer}}{{>enumClass}}{{/isContainer}}{{/items}}{{/items.isEnum}}
2325
/// <summary>
2426
/// {{^description}}Gets or Sets {{{name}}}{{/description}}{{#description}}{{description}}{{/description}}
@@ -139,6 +141,20 @@ namespace {{packageName}}.Models
139141
#endregion Operators
140142
}
141143
{{/isEnum}}
144+
{{/isComposedModel}}
145+
{{#isComposedModel}}
146+
/// <summary>
147+
/// {{description}}
148+
/// </summary>
149+
public interface {{{classname}}}
150+
{
151+
{{#vendorExtensions}}
152+
{{#x-discriminator-type-getter}}
153+
{{x-discriminator-type}} {{x-discriminator-type-getter}}();
154+
{{/x-discriminator-type-getter}}
155+
{{/vendorExtensions}}
156+
}
157+
{{/isComposedModel}}
142158
{{/model}}
143159
{{/models}}
144160
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
/// <summary>
2+
/// {{#description}}{{.}}{{/description}}{{^description}}{{classname}}{{/description}}
3+
/// </summary>
4+
public interface {{{classname}}}
5+
{
6+
7+
{{#vendorExtensions}}
8+
{{#x-discriminator-type-getter}}
9+
{{x-discriminator-type}} {{x-discriminator-type-getter}}();
10+
{{/x-discriminator-type-getter}}
11+
{{/vendorExtensions}}
12+
}

src/main/resources/handlebars/csharp/model.mustache

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
{{>partial_header}}
2+
{{^x-is-composed-model}}
23
using System;
34
using System.Linq;
45
using System.IO;
@@ -27,12 +28,17 @@ using System.ComponentModel;
2728
using System.ComponentModel.DataAnnotations;
2829
{{/netStandard}}
2930
using SwaggerDateConverter = {{packageName}}.Client.SwaggerDateConverter;
30-
31+
{{/x-is-composed-model}}
3132
{{#models}}
3233
{{#model}}
3334
namespace {{packageName}}.{{modelPackage}}
3435
{
36+
{{#isComposedModel}}
37+
{{>interface}}
38+
{{/isComposedModel}}
39+
{{^isComposedModel}}
3540
{{#isEnum}}{{>modelEnum}}{{/isEnum}}{{^isEnum}}{{>modelGeneric}}{{/isEnum}}
41+
{{/isComposedModel}}
3642
{{/model}}
3743
{{/models}}
3844
}

src/main/resources/handlebars/csharp/modelGeneric.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
{{#generatePropertyChanged}}
1010
[ImplementPropertyChanged]
1111
{{/generatePropertyChanged}}
12-
{{>visibility}} partial class {{classname}} : {{#parent}}{{{parent}}}, {{/parent}} IEquatable<{{classname}}>{{^netStandard}}{{#validatable}}, IValidatableObject{{/validatable}}{{/netStandard}}
12+
{{>visibility}} partial class {{classname}} : {{#parent}}{{{parent}}}, {{/parent}} IEquatable<{{classname}}>{{^netStandard}}{{#validatable}}, IValidatableObject{{/validatable}}{{/netStandard}}{{#interfaceModels}}{{#@first}}, {{/@first}}{{classname}}{{^@last}}, {{/@last}}{{#@last}} {{/@last}}{{/interfaceModels}}
1313
{
1414
{{#vars}}
1515
{{#items.isEnum}}

0 commit comments

Comments
 (0)