From a1e15adb8f5c23c8ad0257dcf471b1e86fec8d3c Mon Sep 17 00:00:00 2001 From: wing328 Date: Tue, 23 Feb 2016 20:39:32 +0800 Subject: [PATCH] add required property check to aspnet5 model constructor --- .../src/main/resources/aspnet5/model.mustache | 26 ++++++++++++++-- .../aspnet5/src/IO.Swagger/Models/Category.cs | 6 +++- .../aspnet5/src/IO.Swagger/Models/Order.cs | 14 ++++++++- .../aspnet5/src/IO.Swagger/Models/Pet.cs | 30 ++++++++++++++++++- .../aspnet5/src/IO.Swagger/Models/Tag.cs | 6 +++- .../aspnet5/src/IO.Swagger/Models/User.cs | 18 ++++++++++- 6 files changed, 92 insertions(+), 8 deletions(-) diff --git a/modules/swagger-codegen/src/main/resources/aspnet5/model.mustache b/modules/swagger-codegen/src/main/resources/aspnet5/model.mustache index bb4e7af9d76..08aaed01f3d 100644 --- a/modules/swagger-codegen/src/main/resources/aspnet5/model.mustache +++ b/modules/swagger-codegen/src/main/resources/aspnet5/model.mustache @@ -20,10 +20,30 @@ namespace {{packageName}}.Models /// /// Initializes a new instance of the class. /// - public {{classname}}() +{{#vars}} /// {{#description}}{{description}}{{/description}}{{^description}}{{name}}{{/description}}{{#required}} (required){{/required}}{{#defaultValue}} (default to {{defaultValue}}){{/defaultValue}}. +{{/vars}} + public {{classname}}({{#vars}}{{{datatype}}} {{name}} = null{{#hasMore}}, {{/hasMore}}{{/vars}}) { - {{#vars}}{{#defaultValue}}this.{{name}} = {{{defaultValue}}}; - {{/defaultValue}}{{/vars}} + {{#vars}}{{#required}}// to ensure "{{name}}" is required (not null) + if ({{name}} == null) + { + throw new InvalidDataException("{{name}} is a required property for {{classname}} and cannot be null"); + } + else + { + this.{{name}} = {{name}}; + } + {{/required}}{{/vars}}{{#vars}}{{^required}}{{#defaultValue}}// use default value if no "{{name}}" provided + if ({{name}} == null) + { + this.{{name}} = {{{defaultValue}}}; + } + else + { + this.{{name}} = {{name}}; + } + {{/defaultValue}}{{^defaultValue}}this.{{name}} = {{name}}; + {{/defaultValue}}{{/required}}{{/vars}} } {{#vars}} diff --git a/samples/server/petstore/aspnet5/src/IO.Swagger/Models/Category.cs b/samples/server/petstore/aspnet5/src/IO.Swagger/Models/Category.cs index 0ae013fb688..1bdccbdc4e1 100644 --- a/samples/server/petstore/aspnet5/src/IO.Swagger/Models/Category.cs +++ b/samples/server/petstore/aspnet5/src/IO.Swagger/Models/Category.cs @@ -18,8 +18,12 @@ namespace IO.Swagger.Models /// /// Initializes a new instance of the class. /// - public Category() + /// Id. + /// Name. + public Category(long? Id = null, string Name = null) { + this.Id = Id; + this.Name = Name; } diff --git a/samples/server/petstore/aspnet5/src/IO.Swagger/Models/Order.cs b/samples/server/petstore/aspnet5/src/IO.Swagger/Models/Order.cs index e8bd7610bb6..27252258328 100644 --- a/samples/server/petstore/aspnet5/src/IO.Swagger/Models/Order.cs +++ b/samples/server/petstore/aspnet5/src/IO.Swagger/Models/Order.cs @@ -18,8 +18,20 @@ namespace IO.Swagger.Models /// /// Initializes a new instance of the class. /// - public Order() + /// Id. + /// PetId. + /// Quantity. + /// ShipDate. + /// Order Status. + /// Complete. + public Order(long? Id = null, long? PetId = null, int? Quantity = null, DateTime? ShipDate = null, string Status = null, bool? Complete = null) { + this.Id = Id; + this.PetId = PetId; + this.Quantity = Quantity; + this.ShipDate = ShipDate; + this.Status = Status; + this.Complete = Complete; } diff --git a/samples/server/petstore/aspnet5/src/IO.Swagger/Models/Pet.cs b/samples/server/petstore/aspnet5/src/IO.Swagger/Models/Pet.cs index 5cf91ebe054..e2756f6a80d 100644 --- a/samples/server/petstore/aspnet5/src/IO.Swagger/Models/Pet.cs +++ b/samples/server/petstore/aspnet5/src/IO.Swagger/Models/Pet.cs @@ -18,8 +18,36 @@ namespace IO.Swagger.Models /// /// Initializes a new instance of the class. /// - public Pet() + /// Id. + /// Category. + /// Name (required). + /// PhotoUrls (required). + /// Tags. + /// pet status in the store. + public Pet(long? Id = null, Category Category = null, string Name = null, List PhotoUrls = null, List Tags = null, string Status = null) { + // to ensure "Name" is required (not null) + if (Name == null) + { + throw new InvalidDataException("Name is a required property for Pet and cannot be null"); + } + else + { + this.Name = Name; + } + // to ensure "PhotoUrls" is required (not null) + if (PhotoUrls == null) + { + throw new InvalidDataException("PhotoUrls is a required property for Pet and cannot be null"); + } + else + { + this.PhotoUrls = PhotoUrls; + } + this.Id = Id; + this.Category = Category; + this.Tags = Tags; + this.Status = Status; } diff --git a/samples/server/petstore/aspnet5/src/IO.Swagger/Models/Tag.cs b/samples/server/petstore/aspnet5/src/IO.Swagger/Models/Tag.cs index 159e65015f4..ce8a4e8eafe 100644 --- a/samples/server/petstore/aspnet5/src/IO.Swagger/Models/Tag.cs +++ b/samples/server/petstore/aspnet5/src/IO.Swagger/Models/Tag.cs @@ -18,8 +18,12 @@ namespace IO.Swagger.Models /// /// Initializes a new instance of the class. /// - public Tag() + /// Id. + /// Name. + public Tag(long? Id = null, string Name = null) { + this.Id = Id; + this.Name = Name; } diff --git a/samples/server/petstore/aspnet5/src/IO.Swagger/Models/User.cs b/samples/server/petstore/aspnet5/src/IO.Swagger/Models/User.cs index c20ef235807..9c3737b8b32 100644 --- a/samples/server/petstore/aspnet5/src/IO.Swagger/Models/User.cs +++ b/samples/server/petstore/aspnet5/src/IO.Swagger/Models/User.cs @@ -18,8 +18,24 @@ namespace IO.Swagger.Models /// /// Initializes a new instance of the class. /// - public User() + /// Id. + /// Username. + /// FirstName. + /// LastName. + /// Email. + /// Password. + /// Phone. + /// User Status. + public User(long? Id = null, string Username = null, string FirstName = null, string LastName = null, string Email = null, string Password = null, string Phone = null, int? UserStatus = null) { + this.Id = Id; + this.Username = Username; + this.FirstName = FirstName; + this.LastName = LastName; + this.Email = Email; + this.Password = Password; + this.Phone = Phone; + this.UserStatus = UserStatus; }