diff --git a/Directory.Build.props b/Directory.Build.props
index 402a9ecdc2..85657cbeba 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -51,7 +51,6 @@
[IDE0011] Add braces to 'if' statement
[IDE0008] Use explicit type instead of 'var'
[IDE0017] Object initialization can be simplified
- [IDE0019] Use pattern matching
[IDE0021] Use block body for constructor
[IDE0022] Use block body for method
[IDE0025] Use expression body for property
@@ -68,7 +67,6 @@
[IDE0059] Unnecessary assignment of a value
[IDE0060] Remove unused parameter
[IDE0061] Use block body for local function
- [IDE0074] Use compound assignment
[IDE0090] 'new' expression can be simplified
[IDE0130] Namespace does not match folder structure
[IDE0160] Convert to block scoped namespace
@@ -103,7 +101,7 @@
[SYSLIB0012] 'Assembly.CodeBase' is obsolete
-->
- $(NoWarn);IDE0005;IDE0008;IDE0011;IDE0017;IDE0019;IDE0021;IDE0022;IDE0025;IDE0027;IDE0028;IDE0029;IDE0032;IDE0039;IDE0045;IDE0046;IDE0055;IDE0056;IDE0057;IDE0059;IDE0060;IDE0061;IDE0074;IDE0090;IDE0130;IDE0160;IDE0200;IDE0260;IDE0270;IDE0290;IDE0330
+ $(NoWarn);IDE0005;IDE0008;IDE0011;IDE0017;IDE0021;IDE0022;IDE0025;IDE0027;IDE0028;IDE0029;IDE0032;IDE0039;IDE0045;IDE0046;IDE0055;IDE0056;IDE0057;IDE0059;IDE0060;IDE0061;IDE0090;IDE0130;IDE0160;IDE0200;IDE0260;IDE0270;IDE0290;IDE0330
$(NoWarn);CA1200;CA1304;CA1305;CA1310;CA1311;CA1507;CA1510;CA1514;CA1710;CA1716;CA1720;CA1725;CA1805;CA1834;CA1845;CA1847;CA1861;CA1862;CA1865;CA1866;CA1870;CA2249;CA2263;SYSLIB0012
diff --git a/src/NSwag.CodeGeneration.CSharp/Models/CSharpFileTemplateModel.cs b/src/NSwag.CodeGeneration.CSharp/Models/CSharpFileTemplateModel.cs
index a210100825..1a9603b9aa 100644
--- a/src/NSwag.CodeGeneration.CSharp/Models/CSharpFileTemplateModel.cs
+++ b/src/NSwag.CodeGeneration.CSharp/Models/CSharpFileTemplateModel.cs
@@ -133,8 +133,7 @@ public IEnumerable ExceptionClassNames
{
get
{
- var settings = _settings as CSharpClientGeneratorSettings;
- if (settings != null)
+ if (_settings is CSharpClientGeneratorSettings settings)
{
if (settings.OperationNameGenerator.SupportsMultipleClients)
{
diff --git a/src/NSwag.CodeGeneration.CSharp/Models/CSharpOperationModel.cs b/src/NSwag.CodeGeneration.CSharp/Models/CSharpOperationModel.cs
index 9c8b28999e..10b598fae1 100644
--- a/src/NSwag.CodeGeneration.CSharp/Models/CSharpOperationModel.cs
+++ b/src/NSwag.CodeGeneration.CSharp/Models/CSharpOperationModel.cs
@@ -87,8 +87,7 @@ public string MethodAccessModifier
get
{
var controllerName = _settings.GenerateControllerName(ControllerName);
- var settings = _settings as CSharpClientGeneratorSettings;
- if (settings != null && settings.ProtectedMethods?.Contains(controllerName + "." + ConversionUtilities.ConvertToUpperCamelCase(OperationName, false) + "Async") == true)
+ if (_settings is CSharpClientGeneratorSettings settings && settings.ProtectedMethods?.Contains(controllerName + "." + ConversionUtilities.ConvertToUpperCamelCase(OperationName, false) + "Async") == true)
{
return "protected";
}
@@ -201,8 +200,7 @@ public string RouteName
{
get
{
- var settings = _settings as CSharpControllerGeneratorSettings;
- if (settings != null)
+ if (_settings is CSharpControllerGeneratorSettings settings)
{
return settings.GetRouteName(_operation);
}
diff --git a/src/NSwag.Commands/Commands/Generation/AspNetCore/ProjectMetadata.cs b/src/NSwag.Commands/Commands/Generation/AspNetCore/ProjectMetadata.cs
index 6508e33fd6..15fe0894ba 100644
--- a/src/NSwag.Commands/Commands/Generation/AspNetCore/ProjectMetadata.cs
+++ b/src/NSwag.Commands/Commands/Generation/AspNetCore/ProjectMetadata.cs
@@ -83,11 +83,7 @@ public static async Task GetProjectMetadata(
var args = CreateMsBuildArguments(file, framework, configuration, runtime, noBuild, outputPath);
- var metadata = await TryReadingUsingGetProperties(args, file, noBuild);
- if (metadata == null)
- {
- metadata = await ReadUsingMsBuildTargets(args, file, buildExtensionsDir, console);
- }
+ var metadata = await TryReadingUsingGetProperties(args, file, noBuild) ?? await ReadUsingMsBuildTargets(args, file, buildExtensionsDir, console);
var platformTarget = metadata[nameof(PlatformTarget)];
if (platformTarget.Length == 0)
@@ -125,11 +121,7 @@ private static async Task> ReadUsingMsBuildTargets(
string buildExtensionsDir,
IConsoleHost console)
{
- if (buildExtensionsDir == null)
- {
- // fallback
- buildExtensionsDir = Path.Combine(Path.GetDirectoryName(file), "obj");
- }
+ buildExtensionsDir ??= Path.Combine(Path.GetDirectoryName(file), "obj");
Directory.CreateDirectory(buildExtensionsDir);
diff --git a/src/NSwag.Commands/HostApplication.cs b/src/NSwag.Commands/HostApplication.cs
index faafdb7204..e98308f2b8 100644
--- a/src/NSwag.Commands/HostApplication.cs
+++ b/src/NSwag.Commands/HostApplication.cs
@@ -63,10 +63,7 @@ public static IServiceProvider GetServiceProvider(Assembly assembly)
}
}
- if (serviceProvider == null)
- {
- serviceProvider = GetServiceProviderWithHostFactoryResolver(assembly);
- }
+ serviceProvider ??= GetServiceProviderWithHostFactoryResolver(assembly);
if (serviceProvider == null)
{
diff --git a/src/NSwag.Core/OpenApiOperation.cs b/src/NSwag.Core/OpenApiOperation.cs
index 9cf9af6611..e283d8e714 100644
--- a/src/NSwag.Core/OpenApiOperation.cs
+++ b/src/NSwag.Core/OpenApiOperation.cs
@@ -224,11 +224,7 @@ internal void UpdateRequestBody(OpenApiParameter parameter)
if (parameter.Kind == OpenApiParameterKind.Body)
{
- if (RequestBody == null)
- {
- RequestBody = new OpenApiRequestBody();
- }
-
+ RequestBody ??= new OpenApiRequestBody();
RequestBody.Name = parameter.Name;
RequestBody.Position = parameter.Position;
RequestBody.Description = parameter.Description;
diff --git a/src/NSwag.Core/OpenApiPathItem.cs b/src/NSwag.Core/OpenApiPathItem.cs
index 709016988e..50bd8a8633 100644
--- a/src/NSwag.Core/OpenApiPathItem.cs
+++ b/src/NSwag.Core/OpenApiPathItem.cs
@@ -181,11 +181,7 @@ public override object ReadJson(JsonReader reader, Type objectType, object exist
}
else if (propertyName.StartsWith("x-", StringComparison.OrdinalIgnoreCase))
{
- if (operations.ExtensionData == null)
- {
- operations.ExtensionData = new Dictionary();
- }
-
+ operations.ExtensionData ??= new Dictionary();
operations.ExtensionData[propertyName] = serializer.Deserialize(reader);
}
else if (propertyName.Contains("$ref"))
diff --git a/src/NSwag.Generation.AspNetCore/AspNetCoreOpenApiDocumentGenerator.cs b/src/NSwag.Generation.AspNetCore/AspNetCoreOpenApiDocumentGenerator.cs
index be3e060fb3..678d7e53f1 100644
--- a/src/NSwag.Generation.AspNetCore/AspNetCoreOpenApiDocumentGenerator.cs
+++ b/src/NSwag.Generation.AspNetCore/AspNetCoreOpenApiDocumentGenerator.cs
@@ -220,13 +220,9 @@ private List GenerateApiGroups(
path = "/" + path;
}
- var httpMethod = apiDescription.HttpMethod?.ToLowerInvariant();
- if (httpMethod == null)
- {
- httpMethod = apiDescription.ParameterDescriptions.Any(p => p.Source == BindingSource.Body)
- ? OpenApiOperationMethod.Post
- : OpenApiOperationMethod.Get;
- }
+ var httpMethod = apiDescription.HttpMethod?.ToLowerInvariant() ?? (apiDescription.ParameterDescriptions.Any(p => p.Source == BindingSource.Body)
+ ? OpenApiOperationMethod.Post
+ : OpenApiOperationMethod.Get);
var operation = new OpenApiOperation();
#if NETCOREAPP3_1_OR_GREATER
@@ -406,10 +402,7 @@ await OpenApiDocument.FromJsonAsync(Settings.DocumentTemplate).ConfigureAwait(fa
document.Generator = $"NSwag{version}";
document.SchemaType = Settings.SchemaSettings.SchemaType;
- if (document.Info == null)
- {
- document.Info = new OpenApiInfo();
- }
+ document.Info ??= new OpenApiInfo();
if (string.IsNullOrEmpty(Settings.DocumentTemplate))
{
diff --git a/src/NSwag.Generation.AspNetCore/Processors/OperationParameterProcessor.cs b/src/NSwag.Generation.AspNetCore/Processors/OperationParameterProcessor.cs
index 6328205953..46fd126115 100644
--- a/src/NSwag.Generation.AspNetCore/Processors/OperationParameterProcessor.cs
+++ b/src/NSwag.Generation.AspNetCore/Processors/OperationParameterProcessor.cs
@@ -338,12 +338,7 @@ private static JsonSchema CreateOrGetFormDataSchema(OperationProcessorContext co
requestBody.Content[MultipartFormData] = value;
}
- if (value.Schema == null)
- {
- value.Schema = new JsonSchema();
- }
-
- return value.Schema;
+ return value.Schema ??= new JsonSchema();
}
private static JsonSchemaProperty CreateFormDataProperty(OperationProcessorContext context, ExtendedApiParameterDescription extendedApiParameter, JsonSchema schema)
diff --git a/src/NSwag.Generation.WebApi/Processors/OperationConsumesProcessor.cs b/src/NSwag.Generation.WebApi/Processors/OperationConsumesProcessor.cs
index 3dbab68e06..d8e284aab3 100644
--- a/src/NSwag.Generation.WebApi/Processors/OperationConsumesProcessor.cs
+++ b/src/NSwag.Generation.WebApi/Processors/OperationConsumesProcessor.cs
@@ -25,14 +25,11 @@ public bool Process(OperationProcessorContext context)
.GetCustomAttributes()
.SingleOrDefault(a => a.GetType().Name == "ConsumesAttribute");
- if (consumesAttribute == null)
- {
- // If the action method does not have a Consumes Attribute we'll try with its containing class
- consumesAttribute = context.MethodInfo.DeclaringType
- .GetTypeInfo()
- .GetCustomAttributes()
- .SingleOrDefault(a => a.GetType().Name == "ConsumesAttribute");
- }
+ // If the action method does not have a Consumes Attribute we'll try with its containing class
+ consumesAttribute ??= context.MethodInfo.DeclaringType
+ .GetTypeInfo()
+ .GetCustomAttributes()
+ .SingleOrDefault(a => a.GetType().Name == "ConsumesAttribute");
if (consumesAttribute != null && consumesAttribute.ContentTypes != null)
{
diff --git a/src/NSwag.Generation.WebApi/WebApiOpenApiDocumentGenerator.cs b/src/NSwag.Generation.WebApi/WebApiOpenApiDocumentGenerator.cs
index d795bdcfe1..7ca64b0165 100644
--- a/src/NSwag.Generation.WebApi/WebApiOpenApiDocumentGenerator.cs
+++ b/src/NSwag.Generation.WebApi/WebApiOpenApiDocumentGenerator.cs
@@ -118,10 +118,7 @@ await OpenApiDocument.FromJsonAsync(Settings.DocumentTemplate).ConfigureAwait(fa
document.Consumes = new List { "application/json" };
document.Produces = new List { "application/json" };
- if (document.Info == null)
- {
- document.Info = new OpenApiInfo();
- }
+ document.Info ??= new OpenApiInfo();
if (string.IsNullOrEmpty(Settings.DocumentTemplate))
{
diff --git a/src/NSwag.Generation/Processors/DocumentTagsProcessor.cs b/src/NSwag.Generation/Processors/DocumentTagsProcessor.cs
index 20bdf6bf85..b2eb2ba6b7 100644
--- a/src/NSwag.Generation/Processors/DocumentTagsProcessor.cs
+++ b/src/NSwag.Generation/Processors/DocumentTagsProcessor.cs
@@ -41,11 +41,7 @@ private static void ProcessTagsAttribute(OpenApiDocument document, Type controll
if (tags.Count > 0)
{
- if (document.Tags == null)
- {
- document.Tags = new List();
- }
-
+ document.Tags ??= new List();
foreach (var tag in tags)
{
if (document.Tags.All(t => t.Name != tag.Name))
diff --git a/src/NSwag.Generation/Processors/OperationExtensionDataProcessor.cs b/src/NSwag.Generation/Processors/OperationExtensionDataProcessor.cs
index 5b3b6862c4..19f9664a47 100644
--- a/src/NSwag.Generation/Processors/OperationExtensionDataProcessor.cs
+++ b/src/NSwag.Generation/Processors/OperationExtensionDataProcessor.cs
@@ -23,10 +23,7 @@ public class OperationExtensionDataProcessor : IOperationProcessor
public bool Process(OperationProcessorContext context)
{
var operation = context.OperationDescription.Operation;
- if (operation.ExtensionData == null)
- {
- operation.ExtensionData = new Dictionary();
- }
+ operation.ExtensionData ??= new Dictionary();
if (context.MethodInfo != null)
{
diff --git a/src/NSwag.Generation/Processors/OperationTagsProcessor.cs b/src/NSwag.Generation/Processors/OperationTagsProcessor.cs
index c713cb8feb..dea75e1b3b 100644
--- a/src/NSwag.Generation/Processors/OperationTagsProcessor.cs
+++ b/src/NSwag.Generation/Processors/OperationTagsProcessor.cs
@@ -116,11 +116,7 @@ private static void ProcessSwaggerTagsAttribute(OpenApiDocument document, OpenAp
if (ObjectExtensions.HasProperty(tagsAttribute, "AddToDocument") && tagsAttribute.AddToDocument)
{
- if (document.Tags == null)
- {
- document.Tags = new List();
- }
-
+ document.Tags ??= new List();
if (document.Tags.All(t => t.Name != tag))
{
document.Tags.Add(new OpenApiTag { Name = tag });