diff --git a/src/ApiClientCodeGen.Tests/Generators/CodeGeneratorFactoryTests.cs b/src/ApiClientCodeGen.Tests/Generators/CodeGeneratorFactoryTests.cs index 7239baae40..ecf6b9055d 100644 --- a/src/ApiClientCodeGen.Tests/Generators/CodeGeneratorFactoryTests.cs +++ b/src/ApiClientCodeGen.Tests/Generators/CodeGeneratorFactoryTests.cs @@ -1,4 +1,5 @@ -using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Core; +using System; +using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Core; using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Generators; using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Generators.AutoRest; using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Generators.NSwag; @@ -23,6 +24,9 @@ public class CodeGeneratorFactoryTests public void Init() { var mockFactory = new Mock(); + mockFactory + .Setup(c => c.Create()) + .Returns(Test.CreateDummy()); mockFactory .Setup(c => c.Create()) .Returns(Test.CreateDummy()); @@ -79,5 +83,17 @@ public void Can_Create_OpenApiCodeGenerator() SupportedCodeGenerator.OpenApi) .Should() .BeOfType(); + + [TestMethod] + public void Create_NSwagStudio_Throws_NotSupported() + => new Action( + () => sut.Create( + string.Empty, + string.Empty, + string.Empty, + SupportedLanguage.CSharp, + SupportedCodeGenerator.NSwagStudio)) + .Should() + .ThrowExactly(); } } \ No newline at end of file diff --git a/src/ApiClientCodeGen.Tests/Generators/NSwag/NSwagCSharpCodeGeneratorTests.cs b/src/ApiClientCodeGen.Tests/Generators/NSwag/NSwagCSharpCodeGeneratorTests.cs index 9dc1f1fcc8..47ae44e9c8 100644 --- a/src/ApiClientCodeGen.Tests/Generators/NSwag/NSwagCSharpCodeGeneratorTests.cs +++ b/src/ApiClientCodeGen.Tests/Generators/NSwag/NSwagCSharpCodeGeneratorTests.cs @@ -35,8 +35,6 @@ public async Task Init() var sut = new NSwagCSharpCodeGenerator( "Swagger.json", - Test.CreateAnnonymous(), - optionsMock.Object, documentFactoryMock.Object, settingsMock.Object); diff --git a/src/ApiClientCodeGen.VSIX/Commands/AddNew/NewAutoRestClientCommand.cs b/src/ApiClientCodeGen.VSIX/Commands/AddNew/NewAutoRestClientCommand.cs index 743063380d..34529deee4 100644 --- a/src/ApiClientCodeGen.VSIX/Commands/AddNew/NewAutoRestClientCommand.cs +++ b/src/ApiClientCodeGen.VSIX/Commands/AddNew/NewAutoRestClientCommand.cs @@ -1,5 +1,5 @@ -using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Core; -using System.Diagnostics.CodeAnalysis; +using System.Diagnostics.CodeAnalysis; +using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Core; namespace ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Commands.AddNew { diff --git a/src/ApiClientCodeGen.VSIX/Commands/AddNew/NewNSwagClientCommand.cs b/src/ApiClientCodeGen.VSIX/Commands/AddNew/NewNSwagClientCommand.cs index 4c5b2d62f4..e3cda1975e 100644 --- a/src/ApiClientCodeGen.VSIX/Commands/AddNew/NewNSwagClientCommand.cs +++ b/src/ApiClientCodeGen.VSIX/Commands/AddNew/NewNSwagClientCommand.cs @@ -1,5 +1,5 @@ -using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Core; -using System.Diagnostics.CodeAnalysis; +using System.Diagnostics.CodeAnalysis; +using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Core; namespace ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Commands.AddNew { diff --git a/src/ApiClientCodeGen.VSIX/Commands/AddNew/NewNSwagStudioClientCommand.cs b/src/ApiClientCodeGen.VSIX/Commands/AddNew/NewNSwagStudioClientCommand.cs index cb794395ac..c37d2230bf 100644 --- a/src/ApiClientCodeGen.VSIX/Commands/AddNew/NewNSwagStudioClientCommand.cs +++ b/src/ApiClientCodeGen.VSIX/Commands/AddNew/NewNSwagStudioClientCommand.cs @@ -1,5 +1,5 @@ -using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Core; -using System.Diagnostics.CodeAnalysis; +using System.Diagnostics.CodeAnalysis; +using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Core; namespace ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Commands.AddNew { diff --git a/src/ApiClientCodeGen.VSIX/Commands/AddNew/NewOpenApiClientCommand.cs b/src/ApiClientCodeGen.VSIX/Commands/AddNew/NewOpenApiClientCommand.cs index cb6dbcb76e..b4391a27a6 100644 --- a/src/ApiClientCodeGen.VSIX/Commands/AddNew/NewOpenApiClientCommand.cs +++ b/src/ApiClientCodeGen.VSIX/Commands/AddNew/NewOpenApiClientCommand.cs @@ -1,5 +1,5 @@ -using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Core; -using System.Diagnostics.CodeAnalysis; +using System.Diagnostics.CodeAnalysis; +using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Core; namespace ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Commands.AddNew { diff --git a/src/ApiClientCodeGen.VSIX/Commands/AddNew/NewRestClientCommand.cs b/src/ApiClientCodeGen.VSIX/Commands/AddNew/NewRestClientCommand.cs index 1cc3c10eb2..eeb829da63 100644 --- a/src/ApiClientCodeGen.VSIX/Commands/AddNew/NewRestClientCommand.cs +++ b/src/ApiClientCodeGen.VSIX/Commands/AddNew/NewRestClientCommand.cs @@ -6,14 +6,11 @@ using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Core; using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Extensions; using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Generators.NSwagStudio; -using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Options; using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Options.General; -using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Options.NSwag; using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Options.NSwagStudio; using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Windows; using EnvDTE; using Microsoft.VisualStudio.Shell; -using Microsoft.VisualStudio.Threading; using Newtonsoft.Json; using VSLangProj; using Task = System.Threading.Tasks.Task; @@ -104,4 +101,4 @@ private static string FindFolder(object item, DTE dte) } } } -} +} \ No newline at end of file diff --git a/src/ApiClientCodeGen.VSIX/Commands/AddNew/NewSwaggerClientCommand.cs b/src/ApiClientCodeGen.VSIX/Commands/AddNew/NewSwaggerClientCommand.cs index e2eb7d11f8..b07bfa43e0 100644 --- a/src/ApiClientCodeGen.VSIX/Commands/AddNew/NewSwaggerClientCommand.cs +++ b/src/ApiClientCodeGen.VSIX/Commands/AddNew/NewSwaggerClientCommand.cs @@ -1,5 +1,5 @@ -using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Core; -using System.Diagnostics.CodeAnalysis; +using System.Diagnostics.CodeAnalysis; +using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Core; namespace ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Commands.AddNew { diff --git a/src/ApiClientCodeGen.VSIX/Commands/NSwagStudio/NSwagStudioCommand.cs b/src/ApiClientCodeGen.VSIX/Commands/NSwagStudio/NSwagStudioCommand.cs index 9ef7444298..3c5252ba6a 100644 --- a/src/ApiClientCodeGen.VSIX/Commands/NSwagStudio/NSwagStudioCommand.cs +++ b/src/ApiClientCodeGen.VSIX/Commands/NSwagStudio/NSwagStudioCommand.cs @@ -4,7 +4,6 @@ using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Core; using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Extensions; using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Generators.NSwagStudio; -using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Options; using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Options.General; using EnvDTE; using Microsoft.VisualStudio.Shell; @@ -38,9 +37,9 @@ private static async Task OnExecuteAsync(DTE dte, AsyncPackage package) var nswagStudioFile = item.FileNames[0]; var codeGenerator = new NSwagStudioCodeGenerator(nswagStudioFile, new CustomPathOptions()); codeGenerator.GenerateCode(null); - + var project = ProjectExtensions.GetActiveProject(dte); await project.InstallMissingPackagesAsync(package, SupportedCodeGenerator.NSwag); } } -} +} \ No newline at end of file diff --git a/src/ApiClientCodeGen.VSIX/Extensions/StringExtensions.cs b/src/ApiClientCodeGen.VSIX/Extensions/StringExtensions.cs index 0cada04e88..c3d23aec27 100644 --- a/src/ApiClientCodeGen.VSIX/Extensions/StringExtensions.cs +++ b/src/ApiClientCodeGen.VSIX/Extensions/StringExtensions.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Runtime.InteropServices; using System.Text; using Newtonsoft.Json; @@ -9,18 +10,12 @@ namespace ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Extensions { public static class StringExtension { - private static readonly JsonSerializerSettings jsonSettings; - - static StringExtension() + private static readonly JsonSerializerSettings JsonSettings = new JsonSerializerSettings { - jsonSettings = new JsonSerializerSettings - { - NullValueHandling = NullValueHandling.Ignore, - ContractResolver = new CamelCasePropertyNamesContractResolver() - }; - - jsonSettings.Converters.Add(new StringEnumConverter()); - } + NullValueHandling = NullValueHandling.Ignore, + ContractResolver = new CamelCasePropertyNamesContractResolver(), + Converters = new List { new StringEnumConverter() } + }; public static IntPtr ConvertToIntPtr(this string code, out uint pcbOutput) { @@ -36,6 +31,6 @@ public static IntPtr ConvertToIntPtr(this string code, out uint pcbOutput) public static string ToJson(this object value) => JsonConvert.SerializeObject( value, - jsonSettings); + JsonSettings); } } diff --git a/src/ApiClientCodeGen.VSIX/Generators/AutoRest/AutoRestCSharpCodeGenerator.cs b/src/ApiClientCodeGen.VSIX/Generators/AutoRest/AutoRestCSharpCodeGenerator.cs index 0c1de551b2..8a580df6a6 100644 --- a/src/ApiClientCodeGen.VSIX/Generators/AutoRest/AutoRestCSharpCodeGenerator.cs +++ b/src/ApiClientCodeGen.VSIX/Generators/AutoRest/AutoRestCSharpCodeGenerator.cs @@ -1,7 +1,6 @@ using System; using System.IO; using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Core; -using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Options; using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Options.AutoRest; using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Options.General; @@ -62,4 +61,4 @@ protected override string GetCommand() return autorestCmd; } } -} +} \ No newline at end of file diff --git a/src/ApiClientCodeGen.VSIX/Generators/CSharpFileMerger.cs b/src/ApiClientCodeGen.VSIX/Generators/CSharpFileMerger.cs index 0e6852134a..be427faea3 100644 --- a/src/ApiClientCodeGen.VSIX/Generators/CSharpFileMerger.cs +++ b/src/ApiClientCodeGen.VSIX/Generators/CSharpFileMerger.cs @@ -72,7 +72,7 @@ private static IEnumerable GetSourceFileNames(string path) { var queue = new Queue(); queue.Enqueue(path); - + while (queue.Count > 0) { string[] files = null; @@ -80,29 +80,25 @@ private static IEnumerable GetSourceFileNames(string path) try { files = Directory.GetFiles(path); - foreach (var subDir in Directory.GetDirectories(path)) - { - queue.Enqueue(subDir); - } + foreach (var subDir in Directory.GetDirectories(path)) queue.Enqueue(subDir); } catch (Exception ex) { Trace.TraceError(ex.ToString()); } - if (files == null) + if (files == null) continue; - foreach (var file in files.Where(Predicate())) - { - yield return file; - } + foreach (var file in files.Where(Predicate())) yield return file; } } - private static Func Predicate() - => file => file.EndsWith(".cs") && - !file.Contains("AssemblyInfo.cs"); + private static Func Predicate() + { + return file => file.EndsWith(".cs") && + !file.Contains("AssemblyInfo.cs"); + } private static IEnumerable GetUniqueNamespaces(IEnumerable files) @@ -118,7 +114,7 @@ private static IEnumerable GetUniqueNamespaces(IEnumerable files foreach (var sourceLine in sourceLines) { var trimmedLine = sourceLine.Trim().Replace(" ", " "); - if (!trimmedLine.StartsWith(openingTag) || !trimmedLine.EndsWith(";")) + if (!trimmedLine.StartsWith(openingTag) || !trimmedLine.EndsWith(";")) continue; var name = trimmedLine.Substring(namespaceStartIndex, trimmedLine.Length - namespaceStartIndex - 1); @@ -129,6 +125,5 @@ private static IEnumerable GetUniqueNamespaces(IEnumerable files return names; } - } } \ No newline at end of file diff --git a/src/ApiClientCodeGen.VSIX/Generators/CodeGenerator.cs b/src/ApiClientCodeGen.VSIX/Generators/CodeGenerator.cs index bbf8bdffe0..154606e157 100644 --- a/src/ApiClientCodeGen.VSIX/Generators/CodeGenerator.cs +++ b/src/ApiClientCodeGen.VSIX/Generators/CodeGenerator.cs @@ -12,8 +12,8 @@ public interface ICodeGenerator public abstract class CodeGenerator : ICodeGenerator { - protected readonly string SwaggerFile; protected readonly string DefaultNamespace; + protected readonly string SwaggerFile; protected CodeGenerator(string swaggerFile, string defaultNamespace) { @@ -49,4 +49,4 @@ public virtual string GenerateCode(IVsGeneratorProgress pGenerateProgress) protected abstract string GetArguments(string outputFile); protected abstract string GetCommand(); } -} +} \ No newline at end of file diff --git a/src/ApiClientCodeGen.VSIX/Generators/CodeGeneratorFactory.cs b/src/ApiClientCodeGen.VSIX/Generators/CodeGeneratorFactory.cs index 43c7b971de..4b830a4d11 100644 --- a/src/ApiClientCodeGen.VSIX/Generators/CodeGeneratorFactory.cs +++ b/src/ApiClientCodeGen.VSIX/Generators/CodeGeneratorFactory.cs @@ -1,4 +1,5 @@ -using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Core; +using System; +using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Core; using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Generators.AutoRest; using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Generators.NSwag; using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Generators.OpenApi; @@ -7,7 +8,6 @@ using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Options.AutoRest; using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Options.General; using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Options.NSwag; -using System; namespace ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Generators { @@ -48,10 +48,10 @@ public ICodeGenerator Create( case SupportedCodeGenerator.NSwag: return new NSwagCSharpCodeGenerator( inputFilePath, - defaultNamespace, - optionsFactory.Create(), new OpenApiDocumentFactory(), - new NSwagCodeGeneratorSettingsFactory(defaultNamespace, optionsFactory.Create())); + new NSwagCodeGeneratorSettingsFactory( + defaultNamespace, + optionsFactory.Create())); case SupportedCodeGenerator.Swagger: return new SwaggerCSharpCodeGenerator( @@ -68,7 +68,6 @@ public ICodeGenerator Create( default: throw new NotSupportedException(); } - } } -} +} \ No newline at end of file diff --git a/src/ApiClientCodeGen.VSIX/Generators/FileHelper.cs b/src/ApiClientCodeGen.VSIX/Generators/FileHelper.cs index 3dee104cbd..b31ed38678 100644 --- a/src/ApiClientCodeGen.VSIX/Generators/FileHelper.cs +++ b/src/ApiClientCodeGen.VSIX/Generators/FileHelper.cs @@ -22,10 +22,12 @@ public static string CalculateChecksum(string filename) { using (var hashAlgorithm = MD5.Create()) using (var stream = File.OpenRead(filename)) + { return BitConverter .ToString(hashAlgorithm.ComputeHash(stream)) .Replace("-", "") .ToUpperInvariant(); + } } } } \ No newline at end of file diff --git a/src/ApiClientCodeGen.VSIX/Generators/NSwag/NSwagCSharpCodeGenerator.cs b/src/ApiClientCodeGen.VSIX/Generators/NSwag/NSwagCSharpCodeGenerator.cs index 6da5f134d2..2996e77e3e 100644 --- a/src/ApiClientCodeGen.VSIX/Generators/NSwag/NSwagCSharpCodeGenerator.cs +++ b/src/ApiClientCodeGen.VSIX/Generators/NSwag/NSwagCSharpCodeGenerator.cs @@ -1,7 +1,5 @@ using System; using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Extensions; -using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Options; -using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Options.NSwag; using Microsoft.VisualStudio.Shell.Interop; using NSwag.CodeGeneration.CSharp; @@ -9,24 +7,19 @@ namespace ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Generators.NSwa { public class NSwagCSharpCodeGenerator : ICodeGenerator { - private readonly string swaggerFile; - private readonly string defaultNamespace; - private readonly NSwagCSharpOptions options; private readonly IOpenApiDocumentFactory documentFactory; private readonly INSwagCodeGeneratorSettingsFactory generatorSettingsFactory; + private readonly string swaggerFile; public NSwagCSharpCodeGenerator( - string swaggerFile, - string defaultNamespace, - INSwagOptions options, + string swaggerFile, IOpenApiDocumentFactory documentFactory, INSwagCodeGeneratorSettingsFactory generatorSettingsFactory) { this.swaggerFile = swaggerFile ?? throw new ArgumentNullException(nameof(swaggerFile)); - this.defaultNamespace = defaultNamespace ?? throw new ArgumentNullException(nameof(defaultNamespace)); this.documentFactory = documentFactory ?? throw new ArgumentNullException(nameof(documentFactory)); - this.generatorSettingsFactory = generatorSettingsFactory ?? throw new ArgumentNullException(nameof(generatorSettingsFactory)); - this.options = new NSwagCSharpOptions(options ?? throw new ArgumentNullException(nameof(options))); + this.generatorSettingsFactory = generatorSettingsFactory ?? + throw new ArgumentNullException(nameof(generatorSettingsFactory)); } public string GenerateCode(IVsGeneratorProgress pGenerateProgress) @@ -47,4 +40,4 @@ public string GenerateCode(IVsGeneratorProgress pGenerateProgress) } } } -} +} \ No newline at end of file diff --git a/src/ApiClientCodeGen.VSIX/Generators/NSwag/NSwagCodeGeneratorSettingsFactory.cs b/src/ApiClientCodeGen.VSIX/Generators/NSwag/NSwagCodeGeneratorSettingsFactory.cs index b03d30aa49..e23f1f89e1 100644 --- a/src/ApiClientCodeGen.VSIX/Generators/NSwag/NSwagCodeGeneratorSettingsFactory.cs +++ b/src/ApiClientCodeGen.VSIX/Generators/NSwag/NSwagCodeGeneratorSettingsFactory.cs @@ -1,9 +1,5 @@ using System; -using System.Diagnostics; -using System.IO; -using System.Linq; using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Extensions; -using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Options; using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Options.NSwag; using NSwag; using NSwag.CodeGeneration.CSharp; diff --git a/src/ApiClientCodeGen.VSIX/Generators/NSwagStudio/NSwagStudioCodeGenerator.cs b/src/ApiClientCodeGen.VSIX/Generators/NSwagStudio/NSwagStudioCodeGenerator.cs index 1d200c6c31..096f4f8a2e 100644 --- a/src/ApiClientCodeGen.VSIX/Generators/NSwagStudio/NSwagStudioCodeGenerator.cs +++ b/src/ApiClientCodeGen.VSIX/Generators/NSwagStudio/NSwagStudioCodeGenerator.cs @@ -3,7 +3,6 @@ using System.IO; using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Core; using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Extensions; -using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Options; using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Options.General; using Microsoft.VisualStudio.Shell.Interop; using Newtonsoft.Json; @@ -60,4 +59,4 @@ private static void TryRemoveSwaggerJsonSpec(string nswagFile) } } } -} +} \ No newline at end of file diff --git a/src/ApiClientCodeGen.VSIX/Generators/NSwagStudio/NSwagStudioFileHelper.cs b/src/ApiClientCodeGen.VSIX/Generators/NSwagStudio/NSwagStudioFileHelper.cs index dd75e0f00d..45aa31e343 100644 --- a/src/ApiClientCodeGen.VSIX/Generators/NSwagStudio/NSwagStudioFileHelper.cs +++ b/src/ApiClientCodeGen.VSIX/Generators/NSwagStudio/NSwagStudioFileHelper.cs @@ -1,7 +1,5 @@ using System.Threading.Tasks; using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Extensions; -using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Options; -using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Options.NSwag; using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Options.NSwagStudio; using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Windows; using NJsonSchema.CodeGeneration.CSharp; @@ -27,8 +25,7 @@ public static async Task CreateNSwagStudioFileAsync( { FromSwagger = new { - Json = json, - Url = enterOpenApiSpecDialogResult.Url + Json = json, enterOpenApiSpecDialogResult.Url } }, CodeGenerators = new @@ -55,4 +52,4 @@ public static async Task CreateNSwagStudioFileAsync( .ToJson(); } } -} +} \ No newline at end of file diff --git a/src/ApiClientCodeGen.VSIX/Generators/OpenApi/OpenApiCSharpCodeGenerator.cs b/src/ApiClientCodeGen.VSIX/Generators/OpenApi/OpenApiCSharpCodeGenerator.cs index e93a376437..c337fb3eac 100644 --- a/src/ApiClientCodeGen.VSIX/Generators/OpenApi/OpenApiCSharpCodeGenerator.cs +++ b/src/ApiClientCodeGen.VSIX/Generators/OpenApi/OpenApiCSharpCodeGenerator.cs @@ -3,7 +3,6 @@ using System.IO; using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Core; using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Extensions; -using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Options; using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Options.General; using Microsoft.VisualStudio.Shell.Interop; @@ -11,10 +10,10 @@ namespace ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Generators.Open { public class OpenApiCSharpCodeGenerator : ICodeGenerator { - private readonly string swaggerFile; private readonly string defaultNamespace; private readonly JavaPathProvider javaPathProvider; private readonly CustomPathOptions options; + private readonly string swaggerFile; public OpenApiCSharpCodeGenerator(string swaggerFile, string defaultNamespace, IGeneralOptions options) { @@ -66,4 +65,4 @@ public string GenerateCode(IVsGeneratorProgress pGenerateProgress) } } } -} +} \ No newline at end of file diff --git a/src/ApiClientCodeGen.VSIX/Generators/Swagger/SwaggerCSharpCodeGenerator.cs b/src/ApiClientCodeGen.VSIX/Generators/Swagger/SwaggerCSharpCodeGenerator.cs index f3c7aa2a4c..82968ed8aa 100644 --- a/src/ApiClientCodeGen.VSIX/Generators/Swagger/SwaggerCSharpCodeGenerator.cs +++ b/src/ApiClientCodeGen.VSIX/Generators/Swagger/SwaggerCSharpCodeGenerator.cs @@ -3,7 +3,6 @@ using System.IO; using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Core; using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Extensions; -using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Options; using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Options.General; using Microsoft.VisualStudio.Shell.Interop; @@ -11,10 +10,10 @@ namespace ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Generators.Swag { public class SwaggerCSharpCodeGenerator : ICodeGenerator { - private readonly string swaggerFile; private readonly string defaultNamespace; private readonly JavaPathProvider javaPathProvider; private readonly CustomPathOptions options; + private readonly string swaggerFile; public SwaggerCSharpCodeGenerator(string swaggerFile, string defaultNamespace, IGeneralOptions options) { @@ -29,7 +28,7 @@ public string GenerateCode(IVsGeneratorProgress pGenerateProgress) try { pGenerateProgress.Progress(10); - + var jarFile = options.SwaggerCodegenPath; if (!File.Exists(jarFile)) { @@ -48,12 +47,12 @@ public string GenerateCode(IVsGeneratorProgress pGenerateProgress) var arguments = $"-jar \"{jarFile}\" generate " + - $"-l csharp " + + "-l csharp " + $"--input-spec \"{swaggerFile}\" " + $"--output \"{output}\" " + - $"-DapiTests=false -DmodelTests=false " + + "-DapiTests=false -DmodelTests=false " + $"-DpackageName={defaultNamespace} "; - + ProcessHelper.StartProcess(javaPathProvider.GetJavaExePath(), arguments); pGenerateProgress.Progress(80); @@ -65,4 +64,4 @@ public string GenerateCode(IVsGeneratorProgress pGenerateProgress) } } } -} +} \ No newline at end of file diff --git a/src/ApiClientCodeGen.VSIX/GlobalSuppressions.cs b/src/ApiClientCodeGen.VSIX/GlobalSuppressions.cs index 7ef48f1a4c..40b38c0c7e 100644 --- a/src/ApiClientCodeGen.VSIX/GlobalSuppressions.cs +++ b/src/ApiClientCodeGen.VSIX/GlobalSuppressions.cs @@ -7,4 +7,6 @@ [assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Usage", "VSTHRD002:Avoid problematic synchronous waits", Justification = "", Scope = "member", Target = "~M:ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Generators.NSwag.NSwagCSharpCodeGenerator.GenerateCodeAsync~System.String")] [assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Usage", "VSTHRD002:Avoid problematic synchronous waits", Justification = "", Scope = "member", Target = "~M:ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Generators.NSwag.NSwagCSharpCodeGenerator.GenerateCode(Microsoft.VisualStudio.Shell.Interop.IVsGeneratorProgress)~System.String")] [assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Usage", "VSTHRD002:Avoid problematic synchronous waits", Justification = "", Scope = "member", Target = "~M:ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.CustomTool.SingleFileCodeGenerator.Generate(System.String,System.String,System.String,System.IntPtr[],System.UInt32@,Microsoft.VisualStudio.Shell.Interop.IVsGeneratorProgress)~System.Int32")] - +[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Minor Code Smell", "S1075:URIs should not be hardcoded", Justification = "", Scope = "member", Target = "~M:ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Core.DependencyDownloader.InstallOpenApiGenerator(System.String)~System.String")] +[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Minor Code Smell", "S1075:URIs should not be hardcoded", Justification = "", Scope = "member", Target = "~M:ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Core.DependencyDownloader.InstallSwaggerCodegenCli(System.String)~System.String")] +[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Usage", "VSTHRD002:Avoid problematic synchronous waits", Justification = "", Scope = "member", Target = "~M:ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Generators.NSwag.OpenApiDocumentFactory.GetDocument(System.String)~NSwag.OpenApiDocument")] diff --git a/src/ApiClientCodeGen.VSIX/Options/OptionsBase.cs b/src/ApiClientCodeGen.VSIX/Options/OptionsBase.cs index a16bef1bf6..cd5d42ec9a 100644 --- a/src/ApiClientCodeGen.VSIX/Options/OptionsBase.cs +++ b/src/ApiClientCodeGen.VSIX/Options/OptionsBase.cs @@ -1,10 +1,12 @@ using System.Diagnostics.CodeAnalysis; +using Microsoft.VisualStudio.Shell; namespace ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Options { [ExcludeFromCodeCoverage] public abstract class OptionsBase where TOptionsInterface : class + where TOptionsPage : DialogPage { protected TOptionsInterface GetFromDialogPage() => VsPackage.Instance.GetDialogPage(typeof(TOptionsPage)) diff --git a/src/ApiClientCodeGen.VSIX/Windows/GeneralOptionsPageCustom.cs b/src/ApiClientCodeGen.VSIX/Windows/GeneralOptionsPageCustom.cs index fbb27301fa..599a06657a 100644 --- a/src/ApiClientCodeGen.VSIX/Windows/GeneralOptionsPageCustom.cs +++ b/src/ApiClientCodeGen.VSIX/Windows/GeneralOptionsPageCustom.cs @@ -2,7 +2,6 @@ using System.Diagnostics.CodeAnalysis; using System.IO; using System.Windows.Forms; -using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Options; using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Options.General; namespace ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Windows diff --git a/src/ApiClientCodegen.IntegrationTests/Generators/NSwagCodeGeneratorTests.cs b/src/ApiClientCodegen.IntegrationTests/Generators/NSwagCodeGeneratorTests.cs index b4aa67d261..4fabfc7fac 100644 --- a/src/ApiClientCodegen.IntegrationTests/Generators/NSwagCodeGeneratorTests.cs +++ b/src/ApiClientCodegen.IntegrationTests/Generators/NSwagCodeGeneratorTests.cs @@ -34,8 +34,6 @@ public static void Init(TestContext testContext) var defaultNamespace = typeof(NSwagCodeGeneratorTests).Namespace; var codeGenerator = new NSwagCSharpCodeGenerator( Path.GetFullPath("Swagger.json"), - defaultNamespace, - optionsMock.Object, new OpenApiDocumentFactory(), new NSwagCodeGeneratorSettingsFactory(defaultNamespace, optionsMock.Object));