diff --git a/src/NSwag.CodeGeneration.CSharp.Tests/BinaryTests.cs b/src/NSwag.CodeGeneration.CSharp.Tests/BinaryTests.cs index 1f5a83cc33..195e8c12cd 100644 --- a/src/NSwag.CodeGeneration.CSharp.Tests/BinaryTests.cs +++ b/src/NSwag.CodeGeneration.CSharp.Tests/BinaryTests.cs @@ -442,7 +442,7 @@ public async Task When_multipart_with_ref_should_read_schema() var code = codeGenerator.GenerateFile(); //// Assert - Assert.Contains("public virtual async System.Threading.Tasks.Task AddFileAsync(FileParameter file, Model? model, System.Threading.CancellationToken cancellationToken)", code); + Assert.Contains("public virtual async System.Threading.Tasks.Task AddFileAsync(FileParameter file, Model model, System.Threading.CancellationToken cancellationToken)", code); Assert.Contains("var content_file_ = new System.Net.Http.StreamContent(file.Data);", code); Assert.Contains("public partial class FileParameter", code); } @@ -504,7 +504,7 @@ public async Task When_multipart_inline_schema() var code = codeGenerator.GenerateFile(); //// Assert - Assert.Contains("public virtual async System.Threading.Tasks.Task AddFileAsync(FileParameter file, Model? model, System.Threading.CancellationToken cancellationToken)", code); + Assert.Contains("public virtual async System.Threading.Tasks.Task AddFileAsync(FileParameter file, Model model, System.Threading.CancellationToken cancellationToken)", code); Assert.Contains("var content_file_ = new System.Net.Http.StreamContent(file.Data);", code); Assert.Contains("public partial class FileParameter", code); } diff --git a/src/NSwag.CodeGeneration.CSharp/Templates/Client.Class.liquid b/src/NSwag.CodeGeneration.CSharp/Templates/Client.Class.liquid index 52400fa632..6862d9c26c 100644 --- a/src/NSwag.CodeGeneration.CSharp/Templates/Client.Class.liquid +++ b/src/NSwag.CodeGeneration.CSharp/Templates/Client.Class.liquid @@ -247,7 +247,7 @@ content_.Headers.Remove("Content-Type"); content_.Headers.TryAddWithoutValidation("Content-Type", "multipart/form-data; boundary=" + boundary_); {% for parameter in operation.FormParameters %} -{% if parameter.IsNullable -%} +{% if parameter.IsNullable or parameter.IsOptional -%} if ({{ parameter.VariableName }} != null) {% else -%} if ({{ parameter.VariableName }} == null) diff --git a/src/NSwag.CodeGeneration/Models/OperationModelBase.cs b/src/NSwag.CodeGeneration/Models/OperationModelBase.cs index 9af99efa68..7fcb09a375 100644 --- a/src/NSwag.CodeGeneration/Models/OperationModelBase.cs +++ b/src/NSwag.CodeGeneration/Models/OperationModelBase.cs @@ -366,7 +366,8 @@ protected IList GetActualParameters() OpenApiParameterCollectionFormat.Multi : OpenApiParameterCollectionFormat.Undefined, //Explode = p.Value.Type.HasFlag(JsonObjectType.Array) && p.Value.Item != null, //Schema = p.Value.Type.HasFlag(JsonObjectType.Array) && p.Value.Item != null ? p.Value.Item : p.Value, - Position = parameters.Count + 100 + i + Position = parameters.Count + 100 + i, + IsRequired = p.Value.IsRequired })).ToList(); }