Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support custom renaming file name #2581

Merged
merged 2 commits into from
Oct 16, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/Core/RevEng.Core.60/ReverseEngineerRunner.cs
Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,7 @@ public static ReverseEngineerResult GenerateFiles(ReverseEngineerCommandOptions

if (options.UseDatabaseNames && options.CustomReplacers?.Count > 0)
{
warnings.Add("'use-database-names' / 'UseDatabaseNames' has been set to true, but a 'efpt.renaming.json' file was also found. This prevents 'efpt.renaming.json' from functioning.");
warnings.Add($"'use-database-names' / 'UseDatabaseNames' has been set to true, but a '{Constants.RenamingFileName}' file was also found. This prevents '{Constants.RenamingFileName}' from functioning.");
}

var result = new ReverseEngineerResult
Expand Down
1 change: 1 addition & 0 deletions src/Core/efcpt.8/Constants.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ namespace ErikEJ.EFCorePowerTools;
internal static class Constants
{
public const string ConfigFileName = RevEng.Common.Constants.ConfigFileName;
public const string RenamingFileName = RevEng.Common.Constants.RenamingFileName;

#if CORE60
public const CodeGenerationMode CodeGeneration = CodeGenerationMode.EFCore6;
Expand Down
3 changes: 2 additions & 1 deletion src/Core/efcpt.8/HostedServices/ScaffoldHostedService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,8 @@ protected override async Task ExecuteAsync(CancellationToken stoppingToken)
reverseEngineerCommandOptions.DatabaseType,
scaffoldOptions.Output ?? Directory.GetCurrentDirectory(),
scaffoldOptions.IsDacpac,
scaffoldOptions.ConfigFile.FullName);
scaffoldOptions.ConfigFile.FullName,
scaffoldOptions.RenamingFile.FullName);
DisplayService.MarkupLine();

#pragma warning disable S2589 // Boolean expressions should not be gratuitous
Expand Down
6 changes: 6 additions & 0 deletions src/Core/efcpt.8/Options/ScaffoldOptions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,12 @@ internal sealed class ScaffoldOptions
HelpText = $"Full pathname to the {Constants.ConfigFileName} file, default is '{Constants.ConfigFileName}' in currrent directory")]
public FileInfo ConfigFile { get; set; }

[Option(
'r',
"renamer",
HelpText = $"Full pathname to the {Constants.RenamingFileName} file, default is '{Constants.RenamingFileName}' in currrent directory")]
public FileInfo RenamingFile { get; set; }

public bool IsDacpac => ConnectionString?.EndsWith(".dacpac", StringComparison.OrdinalIgnoreCase) ?? false;
}
#pragma warning restore CA1812 // Avoid uninstantiated internal classes
1 change: 1 addition & 0 deletions src/Core/efcpt.8/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ public static async Task<int> MainAsync(string[] args)
var fileSystem = new FileSystem();

options.ConfigFile = options.ConfigFile ?? new FileInfo(fileSystem.Path.GetFullPath(Constants.ConfigFileName));
options.RenamingFile = options.RenamingFile ?? new FileInfo(fileSystem.Path.GetFullPath(Constants.RenamingFileName));

DisplayHeader(options);
var hostBuilder = new HostBuilder();
Expand Down
24 changes: 18 additions & 6 deletions src/GUI/RevEng.Shared/Cli/CliConfigMapper.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using System;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
Expand All @@ -11,7 +11,14 @@ namespace RevEng.Common.Cli
{
public static class CliConfigMapper
{
public static ReverseEngineerCommandOptions ToCommandOptions(this CliConfig config, string connectionString, DatabaseType databaseType, string projectPath, bool isDacpac, string configPath)
public static ReverseEngineerCommandOptions ToCommandOptions(
this CliConfig config,
string connectionString,
DatabaseType databaseType,
string projectPath,
bool isDacpac,
string configPath,
string renamingPath)
{
if (config is null)
{
Expand All @@ -33,6 +40,11 @@ public static ReverseEngineerCommandOptions ToCommandOptions(this CliConfig conf
throw new ArgumentNullException(nameof(configPath));
}

if (string.IsNullOrEmpty(renamingPath))
{
throw new ArgumentNullException(nameof(renamingPath));
}

var selectedToBeGenerated = config.CodeGeneration.Type.ToUpperInvariant() switch
{
"DBCONTEXT" => 1,
Expand Down Expand Up @@ -63,7 +75,7 @@ public static ReverseEngineerCommandOptions ToCommandOptions(this CliConfig conf
IncludeConnectionString = !isDacpac && config.CodeGeneration.EnableOnConfiguring,
SelectedToBeGenerated = selectedToBeGenerated,
Dacpac = isDacpac ? connectionString : null,
CustomReplacers = GetNamingOptions(configPath),
CustomReplacers = GetNamingOptions(configPath, renamingPath),
UseLegacyPluralizer = config.CodeGeneration.UseLegacyInflector,
UncountableWords = replacements.UncountableWords?.ToList(),
UseSpatial = typeMappings.UseSpatial,
Expand Down Expand Up @@ -154,7 +166,7 @@ public static ReverseEngineerOptions ToOptions(this CliConfig config, string pro
IncludeConnectionString = config.CodeGeneration.EnableOnConfiguring,
SelectedToBeGenerated = selectedToBeGenerated,
Dacpac = null,
CustomReplacers = GetNamingOptions(configPath),
CustomReplacers = GetNamingOptions(configPath, Constants.RenamingFileName),
UseLegacyPluralizer = config.CodeGeneration.UseLegacyInflector,
UncountableWords = replacements.UncountableWords?.ToList(),
UseSpatial = typeMappings.UseSpatial,
Expand Down Expand Up @@ -478,9 +490,9 @@ private static string GetDbContextNameSuggestion(string connectionString, Databa
return DbContextNamer.GetDatabaseName(connectionString, databaseType) + "Context";
}

private static List<Schema> GetNamingOptions(string configPath)
private static List<Schema> GetNamingOptions(string configPath, string renamingFileName)
{
var path = Path.Combine(Path.GetDirectoryName(configPath), "efpt.renaming.json");
var path = Path.Combine(Path.GetDirectoryName(configPath), renamingFileName);
if (!File.Exists(path))
{
return new List<Schema>();
Expand Down
1 change: 1 addition & 0 deletions src/GUI/RevEng.Shared/Constants.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@
public static class Constants
{
public const string ConfigFileName = "efcpt-config.json";
public const string RenamingFileName = "efpt.renaming.json";
}
2 changes: 1 addition & 1 deletion src/GUI/Shared/Extensions/ProjectExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ public static string GetRenamingPath(this Project project, string optionsPath, b
renamingPath = Path.GetDirectoryName(optionsPath);
}

const string efptRenamingJson = "efpt.renaming.json";
const string efptRenamingJson = RevEng.Common.Constants.RenamingFileName;
const string efptRenamingNavJson = "efpt.property-renaming.json";
return Path.Combine(renamingPath, navigationsFile ? efptRenamingNavJson : efptRenamingJson);
}
Expand Down