Commit 1bceef56567bd50fc8285de3e2f75ecbe9d12cbd
1 parent
38e7286e
v1.34.1
Showing
2 changed files
with
40 additions
and
19 deletions
Show diff stats
Vrh.Log4Pro.MaintenanceConsole/Manager - BackupPackageManager.cs
... | ... | @@ -23,6 +23,7 @@ using VRH.Common; |
23 | 23 | using System.Xml.Linq; |
24 | 24 | using System.Text.RegularExpressions; |
25 | 25 | using System.Security.Cryptography; |
26 | +using System.Numerics; | |
26 | 27 | |
27 | 28 | namespace Vrh.Log4Pro.MaintenanceConsole.BackupPackageManagerNS |
28 | 29 | { |
... | ... | @@ -75,49 +76,69 @@ namespace Vrh.Log4Pro.MaintenanceConsole.BackupPackageManagerNS |
75 | 76 | ColorConsole.WriteLine(); |
76 | 77 | |
77 | 78 | |
78 | - var folder1Files = GetFilesWithRelativePaths(rootWORKING, searchpatterncsvlist); | |
79 | + var folderWFiles = GetFilesWithRelativePaths(rootWORKING, searchpatterncsvlist); | |
79 | 80 | var folder2Files = GetFilesWithRelativePaths(rootUPGRADE, searchpatterncsvlist); |
80 | 81 | |
81 | - var allKeys = new HashSet<string>(folder1Files.Keys); | |
82 | - allKeys.UnionWith(folder2Files.Keys); | |
82 | + | |
83 | + var allfiles = new HashSet<string>(folderWFiles.Keys); | |
84 | + allfiles.UnionWith(folder2Files.Keys); | |
83 | 85 | |
84 | 86 | var savedcursortop = Console.CursorTop; |
85 | 87 | Console.WriteLine(); |
86 | 88 | var actualcursortop = Console.CursorTop; |
87 | 89 | var numberofprocessedfiles = 0; |
88 | 90 | var upgradefiles = new Dictionary<string, CompareDirectoriesActions>(); |
89 | - foreach (var relativePath in allKeys.OrderBy(p => p)) | |
91 | + string previousdirectory = null; | |
92 | + foreach (var onefile in allfiles.OrderBy(p => Path.GetDirectoryName(p))) | |
90 | 93 | { |
91 | 94 | numberofprocessedfiles++; |
92 | 95 | if (numberofprocessedfiles < 25) |
93 | 96 | { |
94 | 97 | actualcursortop = Console.CursorTop; |
95 | - ColorConsole.SetCursorPosition(0, savedcursortop); ColorConsole.Write(relativePath, suffix: new string(' ', 20)); | |
98 | + ColorConsole.SetCursorPosition(0, savedcursortop); ColorConsole.Write(onefile, suffix: new string(' ', 20)); | |
96 | 99 | ColorConsole.SetCursorPosition(0, actualcursortop); |
97 | 100 | } |
98 | - bool inWORKFolder = folder1Files.TryGetValue(relativePath, out string file1); | |
99 | - bool inUPGRADEFolder = folder2Files.TryGetValue(relativePath, out string file2); | |
101 | + bool inWORKFolder = folderWFiles.TryGetValue(onefile, out string file1); | |
102 | + bool inUPGRADEFolder = folder2Files.TryGetValue(onefile, out string file2); | |
100 | 103 | |
101 | 104 | if (inWORKFolder && inUPGRADEFolder) |
102 | 105 | { |
103 | 106 | if (!FilesAreEqual(file1, file2, out string difftext)) |
104 | 107 | { |
108 | + string actualdirectory = Path.GetDirectoryName(onefile); | |
109 | + if (previousdirectory != actualdirectory) | |
110 | + { | |
111 | + ColorConsole.WriteLine(actualdirectory, ConsoleColor.DarkYellow); | |
112 | + previousdirectory = actualdirectory; | |
113 | + } | |
105 | 114 | //ColorConsole.WriteLine($"DIFFERENT ({difftext}): {relativePath}", ConsoleColor.Yellow); |
106 | - ColorConsole.WriteLine($"< {relativePath} ({difftext}):", ConsoleColor.Yellow); | |
107 | - upgradefiles.Add(relativePath, CompareDirectoriesActions.CopyFROMUPGRADE); | |
115 | + ColorConsole.WriteLine($"< {onefile} ({difftext}):", ConsoleColor.Yellow); | |
116 | + upgradefiles.Add(onefile, CompareDirectoriesActions.CopyFROMUPGRADE); | |
108 | 117 | } |
109 | 118 | } |
110 | 119 | else if (inWORKFolder) |
111 | 120 | { |
121 | + string actualdirectory = Path.GetDirectoryName(onefile); | |
122 | + if (previousdirectory != actualdirectory) | |
123 | + { | |
124 | + ColorConsole.WriteLine(actualdirectory, ConsoleColor.DarkYellow); | |
125 | + previousdirectory = actualdirectory; | |
126 | + } | |
112 | 127 | //ColorConsole.WriteLine($"ONLY IN Folder1: {relativePath}", ConsoleColor.Yellow); |
113 | - ColorConsole.WriteLine($"-- {relativePath}", ConsoleColor.Yellow); | |
114 | - upgradefiles.Add(relativePath, CompareDirectoriesActions.DeleteINWORKING); | |
128 | + ColorConsole.WriteLine($"-- {onefile}", ConsoleColor.Yellow); | |
129 | + upgradefiles.Add(onefile, CompareDirectoriesActions.DeleteINWORKING); | |
115 | 130 | } |
116 | 131 | else if (inUPGRADEFolder) |
117 | 132 | { |
133 | + string actualdirectory = Path.GetDirectoryName(onefile); | |
134 | + if (previousdirectory != actualdirectory) | |
135 | + { | |
136 | + ColorConsole.WriteLine(actualdirectory, ConsoleColor.DarkYellow); | |
137 | + previousdirectory = actualdirectory; | |
138 | + } | |
118 | 139 | //ColorConsole.WriteLine($"ONLY IN Folder2: {relativePath}", ConsoleColor.Yellow); |
119 | - ColorConsole.WriteLine($"<< {relativePath}", ConsoleColor.Yellow); | |
120 | - upgradefiles.Add(relativePath, CompareDirectoriesActions.CopyFROMUPGRADE); | |
140 | + ColorConsole.WriteLine($"<< {onefile}", ConsoleColor.Yellow); | |
141 | + upgradefiles.Add(onefile, CompareDirectoriesActions.CopyFROMUPGRADE); | |
121 | 142 | } |
122 | 143 | } |
123 | 144 | ColorConsole.WriteLine(); |
... | ... | @@ -132,7 +153,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.BackupPackageManagerNS |
132 | 153 | } |
133 | 154 | return o; |
134 | 155 | } |
135 | - private enum CompareDirectoriesActions { CopyFROMUPGRADE, DeleteINWORKING,} | |
156 | + private enum CompareDirectoriesActions { CopyFROMUPGRADE, DeleteINWORKING,} | |
136 | 157 | private static Dictionary<string, string> GetFilesWithRelativePaths(string root,string searchpattern="*") |
137 | 158 | { |
138 | 159 | var searchpatternlist = searchpattern.Split(new char[] { ',', ';' }, StringSplitOptions.RemoveEmptyEntries); |
... | ... | @@ -142,10 +163,10 @@ namespace Vrh.Log4Pro.MaintenanceConsole.BackupPackageManagerNS |
142 | 163 | files.AddRange(Directory.GetFiles(root, sp, SearchOption.AllDirectories)); |
143 | 164 | } |
144 | 165 | var dict = new Dictionary<string, string>(); |
145 | - foreach (var file in files) | |
166 | + foreach (var fileAbsolutPath in files) | |
146 | 167 | { |
147 | - string relativePath = GetRelativePath(root, file); | |
148 | - dict[relativePath] = file; | |
168 | + string relativePath = GetRelativePath(root, fileAbsolutPath); | |
169 | + dict[relativePath] = fileAbsolutPath; | |
149 | 170 | } |
150 | 171 | return dict; |
151 | 172 | } | ... | ... |
Vrh.Log4Pro.MaintenanceConsole/Properties/AssemblyInfo.cs
... | ... | @@ -32,5 +32,5 @@ using System.Runtime.InteropServices; |
32 | 32 | // You can specify all the values or you can default the Build and Revision Numbers |
33 | 33 | // by using the '*' as shown below: |
34 | 34 | // [assembly: AssemblyVersion("1.0.*")] |
35 | -[assembly: AssemblyVersion("1.34.0.0")] | |
36 | -[assembly: AssemblyFileVersion("1.34.0.0")] | |
35 | +[assembly: AssemblyVersion("1.34.1.0")] | |
36 | +[assembly: AssemblyFileVersion("1.34.1.0")] | ... | ... |