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 });