forked from loafle/openapi-generator-original
CSharp: add support for DateTimeOffset and sourceFolder configuration options
Adds option to use DateTimeOffset to model datetime fields instead of DateTime to allow preservation of timezone information. Modifies ApiClient.ParameterToString to support DateTimeOffset. Also adds sourceFolder option.
This commit is contained in:
parent
5f9164049c
commit
ebe090572f
@ -25,7 +25,7 @@ public class CSharpClientCodegen extends DefaultCodegen implements CodegenConfig
|
|||||||
private static final Logger LOGGER = LoggerFactory.getLogger(CSharpClientCodegen.class);
|
private static final Logger LOGGER = LoggerFactory.getLogger(CSharpClientCodegen.class);
|
||||||
protected boolean optionalAssemblyInfoFlag = true;
|
protected boolean optionalAssemblyInfoFlag = true;
|
||||||
protected boolean optionalMethodArgumentFlag = true;
|
protected boolean optionalMethodArgumentFlag = true;
|
||||||
protected boolean useDateTimeOffsetFlag = false;
|
protected boolean useDateTimeOffsetFlag = false;
|
||||||
protected String packageTitle = "Swagger Library";
|
protected String packageTitle = "Swagger Library";
|
||||||
protected String packageProductName = "SwaggerLibrary";
|
protected String packageProductName = "SwaggerLibrary";
|
||||||
protected String packageDescription = "A library generated from a Swagger doc";
|
protected String packageDescription = "A library generated from a Swagger doc";
|
||||||
@ -77,7 +77,7 @@ public class CSharpClientCodegen extends DefaultCodegen implements CodegenConfig
|
|||||||
"List",
|
"List",
|
||||||
"Dictionary",
|
"Dictionary",
|
||||||
"DateTime?",
|
"DateTime?",
|
||||||
"DateTimeOffset?",
|
"DateTimeOffset?",
|
||||||
"String",
|
"String",
|
||||||
"Boolean",
|
"Boolean",
|
||||||
"Double",
|
"Double",
|
||||||
@ -116,8 +116,8 @@ public class CSharpClientCodegen extends DefaultCodegen implements CodegenConfig
|
|||||||
"e.g. void square(int x=10) (.net 4.0+ only)."));
|
"e.g. void square(int x=10) (.net 4.0+ only)."));
|
||||||
cliOptions.add(CliOption.newBoolean(CodegenConstants.OPTIONAL_ASSEMBLY_INFO,
|
cliOptions.add(CliOption.newBoolean(CodegenConstants.OPTIONAL_ASSEMBLY_INFO,
|
||||||
CodegenConstants.OPTIONAL_ASSEMBLY_INFO_DESC).defaultValue(Boolean.TRUE.toString()));
|
CodegenConstants.OPTIONAL_ASSEMBLY_INFO_DESC).defaultValue(Boolean.TRUE.toString()));
|
||||||
cliOptions.add(new CliOption(CodegenConstants.SOURCE_FOLDER, CodegenConstants.SOURCE_FOLDER_DESC).defaultValue(sourceFolder));
|
cliOptions.add(new CliOption(CodegenConstants.SOURCE_FOLDER, CodegenConstants.SOURCE_FOLDER_DESC).defaultValue(sourceFolder));
|
||||||
cliOptions.add(CliOption.newBoolean(CodegenConstants.USE_DATETIME_OFFSET, CodegenConstants.USE_DATETIME_OFFSET_DESC));
|
cliOptions.add(CliOption.newBoolean(CodegenConstants.USE_DATETIME_OFFSET, CodegenConstants.USE_DATETIME_OFFSET_DESC));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -130,13 +130,13 @@ public class CSharpClientCodegen extends DefaultCodegen implements CodegenConfig
|
|||||||
additionalProperties.put(CodegenConstants.PACKAGE_VERSION, packageVersion);
|
additionalProperties.put(CodegenConstants.PACKAGE_VERSION, packageVersion);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (additionalProperties.containsKey(CodegenConstants.SOURCE_FOLDER)){
|
if (additionalProperties.containsKey(CodegenConstants.SOURCE_FOLDER)){
|
||||||
setSourceFolder((String) additionalProperties.get(CodegenConstants.SOURCE_FOLDER));
|
setSourceFolder((String) additionalProperties.get(CodegenConstants.SOURCE_FOLDER));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
additionalProperties.put(CodegenConstants.SOURCE_FOLDER, this.sourceFolder);
|
additionalProperties.put(CodegenConstants.SOURCE_FOLDER, this.sourceFolder);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (additionalProperties.containsKey(CodegenConstants.PACKAGE_NAME)) {
|
if (additionalProperties.containsKey(CodegenConstants.PACKAGE_NAME)) {
|
||||||
setPackageName((String) additionalProperties.get(CodegenConstants.PACKAGE_NAME));
|
setPackageName((String) additionalProperties.get(CodegenConstants.PACKAGE_NAME));
|
||||||
@ -147,12 +147,12 @@ public class CSharpClientCodegen extends DefaultCodegen implements CodegenConfig
|
|||||||
additionalProperties.put(CodegenConstants.PACKAGE_NAME, packageName);
|
additionalProperties.put(CodegenConstants.PACKAGE_NAME, packageName);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Use DateTimeOffset
|
// Use DateTimeOffset
|
||||||
if (additionalProperties.containsKey(CodegenConstants.USE_DATETIME_OFFSET))
|
if (additionalProperties.containsKey(CodegenConstants.USE_DATETIME_OFFSET))
|
||||||
{
|
{
|
||||||
useDateTimeOffset(Boolean.valueOf(additionalProperties.get(CodegenConstants.USE_DATETIME_OFFSET).toString()));
|
useDateTimeOffset(Boolean.valueOf(additionalProperties.get(CodegenConstants.USE_DATETIME_OFFSET).toString()));
|
||||||
}
|
}
|
||||||
additionalProperties.put(CodegenConstants.USE_DATETIME_OFFSET, useDateTimeOffsetFlag);
|
additionalProperties.put(CodegenConstants.USE_DATETIME_OFFSET, useDateTimeOffsetFlag);
|
||||||
|
|
||||||
additionalProperties.put("clientPackage", clientPackage);
|
additionalProperties.put("clientPackage", clientPackage);
|
||||||
|
|
||||||
@ -339,12 +339,12 @@ public class CSharpClientCodegen extends DefaultCodegen implements CodegenConfig
|
|||||||
this.optionalMethodArgumentFlag = flag;
|
this.optionalMethodArgumentFlag = flag;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void useDateTimeOffset(boolean flag) {
|
public void useDateTimeOffset(boolean flag) {
|
||||||
this.useDateTimeOffsetFlag = flag;
|
this.useDateTimeOffsetFlag = flag;
|
||||||
if (flag)
|
if (flag)
|
||||||
typeMapping.put("datetime", "DateTimeOffset?");
|
typeMapping.put("datetime", "DateTimeOffset?");
|
||||||
else
|
else
|
||||||
typeMapping.put("datetime", "DateTime?");
|
typeMapping.put("datetime", "DateTime?");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -356,9 +356,9 @@ public class CSharpClientCodegen extends DefaultCodegen implements CodegenConfig
|
|||||||
this.packageVersion = packageVersion;
|
this.packageVersion = packageVersion;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setSourceFolder(String sourceFolder) {
|
public void setSourceFolder(String sourceFolder) {
|
||||||
this.sourceFolder = sourceFolder;
|
this.sourceFolder = sourceFolder;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<String, Object> postProcessModels(Map<String, Object> objs) {
|
public Map<String, Object> postProcessModels(Map<String, Object> objs) {
|
||||||
|
@ -33,11 +33,10 @@ public class CSharpClientOptionsTest extends AbstractOptionsTest {
|
|||||||
times = 1;
|
times = 1;
|
||||||
clientCodegen.setOptionalAssemblyInfoFlag(true);
|
clientCodegen.setOptionalAssemblyInfoFlag(true);
|
||||||
times = 1;
|
times = 1;
|
||||||
|
clientCodegen.setSourceFolder(CSharpClientOptionsProvider.SOURCE_FOLDER_VALUE);
|
||||||
clientCodegen.setSourceFolder(CSharpClientOptionsProvider.SOURCE_FOLDER_VALUE);
|
times = 1;
|
||||||
times = 1;
|
clientCodegen.useDateTimeOffset(true);
|
||||||
clientCodegen.useDateTimeOffset(true);
|
times = 1;
|
||||||
times = 1;
|
|
||||||
}};
|
}};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,7 @@ import java.util.Map;
|
|||||||
public class CSharpClientOptionsProvider implements OptionsProvider {
|
public class CSharpClientOptionsProvider implements OptionsProvider {
|
||||||
public static final String PACKAGE_NAME_VALUE = "swagger_client_csharp";
|
public static final String PACKAGE_NAME_VALUE = "swagger_client_csharp";
|
||||||
public static final String PACKAGE_VERSION_VALUE = "1.0.0-SNAPSHOT";
|
public static final String PACKAGE_VERSION_VALUE = "1.0.0-SNAPSHOT";
|
||||||
public static final String SOURCE_FOLDER_VALUE = "src_csharp";
|
public static final String SOURCE_FOLDER_VALUE = "src_csharp";
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getLanguage() {
|
public String getLanguage() {
|
||||||
@ -24,8 +24,8 @@ public class CSharpClientOptionsProvider implements OptionsProvider {
|
|||||||
.put(CodegenConstants.SORT_PARAMS_BY_REQUIRED_FLAG, "true")
|
.put(CodegenConstants.SORT_PARAMS_BY_REQUIRED_FLAG, "true")
|
||||||
.put(CodegenConstants.OPTIONAL_METHOD_ARGUMENT, "true")
|
.put(CodegenConstants.OPTIONAL_METHOD_ARGUMENT, "true")
|
||||||
.put(CodegenConstants.OPTIONAL_ASSEMBLY_INFO, "true")
|
.put(CodegenConstants.OPTIONAL_ASSEMBLY_INFO, "true")
|
||||||
.put(CodegenConstants.USE_DATETIME_OFFSET, "true")
|
.put(CodegenConstants.USE_DATETIME_OFFSET, "true")
|
||||||
.put(CodegenConstants.SOURCE_FOLDER, SOURCE_FOLDER_VALUE)
|
.put(CodegenConstants.SOURCE_FOLDER, SOURCE_FOLDER_VALUE)
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user