54 lines
2.4 KiB
C#
54 lines
2.4 KiB
C#
using Core;
|
|
using Core.Dto.Settings;
|
|
using Core.Settings;
|
|
using Generator.DataSource.Settings;
|
|
|
|
namespace Generator.Mappers;
|
|
|
|
public static class DotnetMapper
|
|
{
|
|
public static DotnetConfig Map(this DotnetConfigDto dto, ConfigManager configManager, ISpecFile file)
|
|
{
|
|
var specName = file.Name;
|
|
var specFolder = file.Folder;
|
|
var generationFolder = configManager.GetGeneral().GenerationFolder;
|
|
var apiFolder = configManager.GetGeneral().ApiFolder;
|
|
var templatesConfig = configManager.Templates;
|
|
var baseConfig = configManager.GetBase();
|
|
var openApiConfig = configManager.OpenApi.Map(configManager, specFolder, specName);
|
|
var publishConfig = configManager.Publish;
|
|
var credConfig = configManager.Credentials;
|
|
var d = new DotnetConfig
|
|
{
|
|
LocalRoot = baseConfig.LocalRoot,
|
|
DockerRoot = baseConfig.DockerRoot,
|
|
GenerationImage = configManager.DockerImages.OpenApiGeneratorImage,
|
|
BuildImage = configManager.DockerImages.DotnetSdkImage,
|
|
Invite = baseConfig.Invite,
|
|
|
|
SpecFile = apiFolder.ConcatenateWith([specFolder, $"{specName}{openApiConfig.SpecExtension}"]),
|
|
OpenApi = openApiConfig.Folder,
|
|
|
|
PackageFolder = "src",
|
|
PackageFile = file.NugetPackage,
|
|
|
|
TemplateFolder = new Location(templatesConfig.Folder),
|
|
CommonFolder = generationFolder.ConcatenateWith([specFolder, dto.CommonFolder, specName]),
|
|
ServerFolder = generationFolder.ConcatenateWith([specFolder, dto.ServerFolder, specName]),
|
|
ClientFolder = generationFolder.ConcatenateWith([specFolder, dto.ClientFolder, specName]),
|
|
|
|
ConfigFile = openApiConfig.GeneratorConfigFile,
|
|
IgnoreFile = openApiConfig.GeneratorIgnoreFile,
|
|
|
|
ServerConfigTemplate = new Location([templatesConfig.Folder, templatesConfig.DotnetServerGeneratorConfig]),
|
|
ClientConfigTemplate = new Location([templatesConfig.Folder, templatesConfig.DotnetClientGeneratorConfig]),
|
|
ServerIgnoreTemplate = new Location([templatesConfig.Folder, templatesConfig.ServerIgnore]),
|
|
ClientIgnoreTemplate = new Location([templatesConfig.Folder, templatesConfig.ClientIgnore]),
|
|
Registry = publishConfig.NugetRegistry,
|
|
AuthorizationToken = credConfig.Token
|
|
|
|
};
|
|
|
|
return d;
|
|
}
|
|
} |