From 151d4cd77ba39297888393b39ed03ff75ddd6314 Mon Sep 17 00:00:00 2001 From: PaulKeating1 Date: Fri, 28 Feb 2025 12:48:22 +0000 Subject: [PATCH] DesignerFileCountToKeep was being ignored and all designer files were being modified. --- EFCoreFileManipulator.cs | 8 +++++--- EFCoreRemoveDesignerCompilationTask.cs | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/EFCoreFileManipulator.cs b/EFCoreFileManipulator.cs index 5564f80..b8b5cf5 100644 --- a/EFCoreFileManipulator.cs +++ b/EFCoreFileManipulator.cs @@ -13,7 +13,7 @@ internal class EFCoreFileManipulator static readonly Regex MigrationRegex = new Regex(@".*\[Migration\(""(?.*)""\)\].*(\r\n|\r|\n)", RegexOptions.Compiled); static readonly Regex DbContextRegex = new Regex(@".*\[DbContext\(typeof\((?.*)\)\)\].*(\r\n|\r|\n)", RegexOptions.Compiled); static readonly Regex LineBreakDetection = new Regex(@".*(?(\r\n|\r|\n))", RegexOptions.Compiled); - + private readonly TaskLoggingHelper _taskLoggingHelper; public EFCoreFileManipulator(TaskLoggingHelper taskLoggingHelper) @@ -21,14 +21,16 @@ public EFCoreFileManipulator(TaskLoggingHelper taskLoggingHelper) _taskLoggingHelper = taskLoggingHelper; } - public void ProcessDirectory(DirectoryInfo directory, string namespaceName) + public void ProcessDirectory(DirectoryInfo directory, string namespaceName, int designerFileCountToKeep) { var filesToProcess = new List<(FileInfo MigrationFile, FileInfo DesignerFile)>(); - foreach (var file in directory.EnumerateFiles("*.Designer.cs").OrderBy(x => x.Name)) + foreach (var file in directory.EnumerateFiles("*.Designer.cs").OrderByDescending(x => x.Name).Skip(designerFileCountToKeep)) { filesToProcess.Add((new FileInfo(file.FullName.Replace(".Designer.cs", ".cs")), file)); } + filesToProcess.Reverse(); + foreach (var (migrationFile, designerFile) in filesToProcess) { if (!designerFile.Exists || !migrationFile.Exists) diff --git a/EFCoreRemoveDesignerCompilationTask.cs b/EFCoreRemoveDesignerCompilationTask.cs index 1c153a3..b026cdd 100644 --- a/EFCoreRemoveDesignerCompilationTask.cs +++ b/EFCoreRemoveDesignerCompilationTask.cs @@ -20,7 +20,7 @@ public override bool Execute() { var efCoreFileManipulator = new EFCoreFileManipulator(Log); var directory = new DirectoryInfo(MigrationFilesPath); - efCoreFileManipulator.ProcessDirectory(directory, DBContextNamespace); + efCoreFileManipulator.ProcessDirectory(directory, DBContextNamespace, DesignerFileCountToKeep); var latestFiles = directory.EnumerateFiles("*.Designer.cs").OrderByDescending(x => x.Name).Take(DesignerFileCountToKeep); LatestDesignerFiles = latestFiles.Select(x => x.FullName).ToArray();