Commit 2f5d87653d4182acbff93443ac73890ea31cbc03
1 parent
fb6819fe
v1.3.0.0
FileCleaner és Backup package paraméterezésének jobbítása
Showing
6 changed files
with
119 additions
and
79 deletions
Show diff stats
Vrh.Log4Pro.MaintenanceConsole/Manager - BackupPackageManager.cs
@@ -79,6 +79,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.BackupPackageManagerNS | @@ -79,6 +79,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.BackupPackageManagerNS | ||
79 | var vars = new Dictionary<string, string>(); | 79 | var vars = new Dictionary<string, string>(); |
80 | vars.Add("PACKAGENAME", bp.Xml_PackageName); | 80 | vars.Add("PACKAGENAME", bp.Xml_PackageName); |
81 | vars.Add("PACKAGETS", packagets); | 81 | vars.Add("PACKAGETS", packagets); |
82 | + vars.Add("PACKAGEKEY", bp.Xml_Key); | ||
82 | 83 | ||
83 | var destinationfolder = Path.GetDirectoryName(bp.Xml_PackageFilePath); | 84 | var destinationfolder = Path.GetDirectoryName(bp.Xml_PackageFilePath); |
84 | if (!Path.IsPathRooted(destinationfolder)) { destinationfolder = Path.Combine(Directory.GetCurrentDirectory(), destinationfolder); } | 85 | if (!Path.IsPathRooted(destinationfolder)) { destinationfolder = Path.Combine(Directory.GetCurrentDirectory(), destinationfolder); } |
@@ -87,8 +88,8 @@ namespace Vrh.Log4Pro.MaintenanceConsole.BackupPackageManagerNS | @@ -87,8 +88,8 @@ namespace Vrh.Log4Pro.MaintenanceConsole.BackupPackageManagerNS | ||
87 | var destinationfilename = Path.GetFileNameWithoutExtension(bp.Xml_PackageFilePath); | 88 | var destinationfilename = Path.GetFileNameWithoutExtension(bp.Xml_PackageFilePath); |
88 | //string tempfolderpath = Tools.GetTemporaryFoldername(destinationfolder); | 89 | //string tempfolderpath = Tools.GetTemporaryFoldername(destinationfolder); |
89 | 90 | ||
90 | - destinationfilename = StringConstructor.ResolveConstructor(vars, destinationfilename, "{}@@"); | ||
91 | - destinationfolder = StringConstructor.ResolveConstructor(vars, destinationfolder, "{}@@"); | 91 | + destinationfilename = StringConstructor.ResolveConstructorR(vars, destinationfilename, "{}@@"); |
92 | + destinationfolder = StringConstructor.ResolveConstructorR(vars, destinationfolder, "{}@@"); | ||
92 | var temprootfolder=string.IsNullOrEmpty(bp.Xml_TempDirectoryPath) ? destinationfolder : bp.Xml_TempDirectoryPath; | 93 | var temprootfolder=string.IsNullOrEmpty(bp.Xml_TempDirectoryPath) ? destinationfolder : bp.Xml_TempDirectoryPath; |
93 | 94 | ||
94 | string tempfolderpath = Path.Combine(temprootfolder, destinationfilename); | 95 | string tempfolderpath = Path.Combine(temprootfolder, destinationfilename); |
@@ -197,7 +198,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.BackupPackageManagerNS | @@ -197,7 +198,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.BackupPackageManagerNS | ||
197 | var destinationext = Path.GetExtension(destinationbackupfile); if (string.IsNullOrWhiteSpace(destinationext)) { destinationext = ".zip"; } | 198 | var destinationext = Path.GetExtension(destinationbackupfile); if (string.IsNullOrWhiteSpace(destinationext)) { destinationext = ".zip"; } |
198 | destinationbackupfile = Path.Combine(destinationfolderpath, destinationfile+destinationext); | 199 | destinationbackupfile = Path.Combine(destinationfolderpath, destinationfile+destinationext); |
199 | 200 | ||
200 | - destinationbackupfile = VRH.Common.StringConstructor.ResolveConstructor(vars, destinationbackupfile, "{}@@"); | 201 | + destinationbackupfile = VRH.Common.StringConstructor.ResolveConstructorR(vars, destinationbackupfile, "{}@@"); |
201 | 202 | ||
202 | if (File.Exists(destinationbackupfile)) { File.Delete(destinationbackupfile); } | 203 | if (File.Exists(destinationbackupfile)) { File.Delete(destinationbackupfile); } |
203 | 204 | ||
@@ -227,7 +228,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.BackupPackageManagerNS | @@ -227,7 +228,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.BackupPackageManagerNS | ||
227 | destinationfilename = destinationfilename??Path.GetFileNameWithoutExtension(sourcedirectorypath); | 228 | destinationfilename = destinationfilename??Path.GetFileNameWithoutExtension(sourcedirectorypath); |
228 | 229 | ||
229 | string package___filepath = Path.Combine(destinationfolder, destinationfilename); | 230 | string package___filepath = Path.Combine(destinationfolder, destinationfilename); |
230 | - package___filepath=VRH.Common.StringConstructor.ResolveConstructor(vars, package___filepath, "{}@@"); | 231 | + package___filepath=VRH.Common.StringConstructor.ResolveConstructorR(vars, package___filepath, "{}@@"); |
231 | 232 | ||
232 | string packageEXEfilepath = package___filepath + ".exe"; | 233 | string packageEXEfilepath = package___filepath + ".exe"; |
233 | string packageZIPfilepath = package___filepath + ".zip"; | 234 | string packageZIPfilepath = package___filepath + ".zip"; |
@@ -331,16 +332,24 @@ namespace Vrh.Log4Pro.MaintenanceConsole.BackupPackageManagerNS | @@ -331,16 +332,24 @@ namespace Vrh.Log4Pro.MaintenanceConsole.BackupPackageManagerNS | ||
331 | #region BackupPackageManagerXmlProcessor class | 332 | #region BackupPackageManagerXmlProcessor class |
332 | public class BackupPackageManagerXmlProcessor : XmlParser | 333 | public class BackupPackageManagerXmlProcessor : XmlParser |
333 | { | 334 | { |
334 | - private List<BackupPackage> _backuppackagelist; | 335 | + private List<BackupPackage> _backuppackagelist= new List<BackupPackage>(); |
335 | #region constructor | 336 | #region constructor |
336 | public BackupPackageManagerXmlProcessor(string xmlcs, string basefolder, string lcid) : base(xmlcs, basefolder, lcid, null) | 337 | public BackupPackageManagerXmlProcessor(string xmlcs, string basefolder, string lcid) : base(xmlcs, basefolder, lcid, null) |
337 | { | 338 | { |
338 | - _backuppackagelist = new List<BackupPackage>(); | ||
339 | - var tmpdirpath = GetValue(nameof(BackupPackage.XmlStructure.Attributes.TempDirectoryPath), GetRootElement(),""); | 339 | + string tmpdirpath="", packagefilepath="", packagename="", createexe=""; |
340 | + var ca = GetXElement(nameof(BackupPackage.XmlStructure.CommonAttributes)); | ||
341 | + if (ca != null) | ||
342 | + { | ||
343 | + tmpdirpath = GetValue(nameof(BackupPackage.XmlStructure.CommonAttributes.Attributes.TempDirectoryPath), ca, ""); | ||
344 | + packagefilepath = GetValue(nameof(BackupPackage.XmlStructure.CommonAttributes.Attributes.PackageFilePath), ca, ""); | ||
345 | + packagename = GetValue(nameof(BackupPackage.XmlStructure.CommonAttributes.Attributes.PackageName), ca, ""); | ||
346 | + createexe = GetValue(nameof(BackupPackage.XmlStructure.CommonAttributes.Attributes.CreateExe), ca, ""); | ||
347 | + } | ||
348 | + | ||
340 | var bpxmllist = GetAllXElements(nameof(BackupPackage.XmlStructure.BackupPackage)); | 349 | var bpxmllist = GetAllXElements(nameof(BackupPackage.XmlStructure.BackupPackage)); |
341 | if (bpxmllist != null && bpxmllist.Any()) | 350 | if (bpxmllist != null && bpxmllist.Any()) |
342 | { | 351 | { |
343 | - foreach (var bpxml in bpxmllist) { var bp = new BackupPackage(bpxml, tmpdirpath); if (bp.Valid) { _backuppackagelist.Add(bp); } } | 352 | + foreach (var bpxml in bpxmllist) { var bp = new BackupPackage(bpxml, tmpdirpath, packagefilepath, packagename, createexe); if (bp.Valid) { _backuppackagelist.Add(bp); } } |
344 | } | 353 | } |
345 | } | 354 | } |
346 | #endregion constructor | 355 | #endregion constructor |
@@ -373,24 +382,31 @@ namespace Vrh.Log4Pro.MaintenanceConsole.BackupPackageManagerNS | @@ -373,24 +382,31 @@ namespace Vrh.Log4Pro.MaintenanceConsole.BackupPackageManagerNS | ||
373 | #endregion basic constructor | 382 | #endregion basic constructor |
374 | 383 | ||
375 | #region xml constructor | 384 | #region xml constructor |
376 | - public BackupPackage(XElement backupackagexml,string tmpdirectorypath) | 385 | + public BackupPackage(XElement backupackagexml,string commontmpdirectorypath,string commonpackagefilepath=null,string commonpackagename=null,string commoncreateexe=null) |
377 | { | 386 | { |
378 | Valid = true; | 387 | Valid = true; |
379 | string ATTRIBUTEMANDATORY = nameof(XmlStructure.BackupPackage) + " attribute is mandatory! Name: {0}"; | 388 | string ATTRIBUTEMANDATORY = nameof(XmlStructure.BackupPackage) + " attribute is mandatory! Name: {0}"; |
380 | - Xml_Key = GetValue(nameof(XmlStructure.BackupPackage.Attributes.Key), backupackagexml, XmlStructure.BackupPackage.Attributes.Key.Values.DEFAULT); | 389 | + |
381 | Xml_PackageName = backupackagexml.Attribute(XName.Get(nameof(XmlStructure.BackupPackage.Attributes.Name)))?.Value; | 390 | Xml_PackageName = backupackagexml.Attribute(XName.Get(nameof(XmlStructure.BackupPackage.Attributes.Name)))?.Value; |
391 | + if (string.IsNullOrWhiteSpace(Xml_PackageName)) { Xml_PackageName=commonpackagename; } | ||
382 | if (string.IsNullOrWhiteSpace(Xml_PackageName)) { throw new ApplicationException(string.Format(ATTRIBUTEMANDATORY, nameof(XmlStructure.BackupPackage.Attributes.Name))); } | 392 | if (string.IsNullOrWhiteSpace(Xml_PackageName)) { throw new ApplicationException(string.Format(ATTRIBUTEMANDATORY, nameof(XmlStructure.BackupPackage.Attributes.Name))); } |
383 | - Xml_Description = GetValue(nameof(XmlStructure.BackupPackage.Attributes.Description), backupackagexml, Xml_PackageName); | 393 | + |
384 | Xml_PackageFilePath = GetValue(nameof(XmlStructure.BackupPackage.Attributes.PackageFilePath), backupackagexml, ""); | 394 | Xml_PackageFilePath = GetValue(nameof(XmlStructure.BackupPackage.Attributes.PackageFilePath), backupackagexml, ""); |
395 | + if (string.IsNullOrWhiteSpace(Xml_PackageFilePath)) { Xml_PackageFilePath= commonpackagefilepath; } | ||
385 | if (string.IsNullOrWhiteSpace(Xml_PackageFilePath)) { throw new ApplicationException(string.Format(ATTRIBUTEMANDATORY, XmlStructure.BackupPackage.Attributes.PackageFilePath.Values.DEFAULT)); } | 396 | if (string.IsNullOrWhiteSpace(Xml_PackageFilePath)) { throw new ApplicationException(string.Format(ATTRIBUTEMANDATORY, XmlStructure.BackupPackage.Attributes.PackageFilePath.Values.DEFAULT)); } |
386 | - Xml_TempDirectoryPath = tmpdirectorypath; | ||
387 | 397 | ||
388 | - Xml_SourceIncludeFilenameMaskList = GetValue(nameof(XmlStructure.BackupPackage.Attributes.IncludeFilenameMaskList), backupackagexml, XmlStructure.BackupPackage.Attributes.IncludeFilenameMaskList.Values.DEFAULT); | 398 | + Xml_TempDirectoryPath =GetValue(nameof(XmlStructure.BackupPackage.Attributes.TempDirectoryPath), backupackagexml, ""); |
399 | + if (string.IsNullOrWhiteSpace(Xml_TempDirectoryPath)) { Xml_TempDirectoryPath= commontmpdirectorypath; } | ||
389 | 400 | ||
390 | string XmlCreateExestring = GetValue(nameof(XmlStructure.BackupPackage.Attributes.CreateExe), backupackagexml, XmlStructure.BackupPackage.Attributes.CreateExe.Values.DEFAULT.ToString()); | 401 | string XmlCreateExestring = GetValue(nameof(XmlStructure.BackupPackage.Attributes.CreateExe), backupackagexml, XmlStructure.BackupPackage.Attributes.CreateExe.Values.DEFAULT.ToString()); |
402 | + if (string.IsNullOrWhiteSpace(XmlCreateExestring)) { XmlCreateExestring = commoncreateexe; } | ||
391 | if (string.IsNullOrWhiteSpace(XmlCreateExestring)) { XmlCreateExestring = XmlStructure.BackupPackage.Attributes.CreateExe.Values.DEFAULT.ToString(); } | 403 | if (string.IsNullOrWhiteSpace(XmlCreateExestring)) { XmlCreateExestring = XmlStructure.BackupPackage.Attributes.CreateExe.Values.DEFAULT.ToString(); } |
392 | Xml_CreateExe = bool.Parse(XmlCreateExestring); | 404 | Xml_CreateExe = bool.Parse(XmlCreateExestring); |
393 | 405 | ||
406 | + Xml_Key = GetValue(nameof(XmlStructure.BackupPackage.Attributes.Key), backupackagexml, XmlStructure.BackupPackage.Attributes.Key.Values.DEFAULT); | ||
407 | + Xml_Description = GetValue(nameof(XmlStructure.BackupPackage.Attributes.Description), backupackagexml, Xml_PackageName); | ||
408 | + Xml_SourceIncludeFilenameMaskList = GetValue(nameof(XmlStructure.BackupPackage.Attributes.IncludeFilenameMaskList), backupackagexml, XmlStructure.BackupPackage.Attributes.IncludeFilenameMaskList.Values.DEFAULT); | ||
409 | + | ||
394 | Xml_BackupFolderList = new List<BackupFolder>(); | 410 | Xml_BackupFolderList = new List<BackupFolder>(); |
395 | //var conditionxmlList = GetAllXElements(foldertocleanxml, nameof(XmlStructure.FolderToClean.Conditions), nameof(XmlStructure.FolderToClean.Conditions.Condition)); | 411 | //var conditionxmlList = GetAllXElements(foldertocleanxml, nameof(XmlStructure.FolderToClean.Conditions), nameof(XmlStructure.FolderToClean.Conditions.Condition)); |
396 | var backupfolderxmlList = backupackagexml.Elements(XName.Get(nameof(XmlStructure.BackupPackage.BackupFolder))); | 412 | var backupfolderxmlList = backupackagexml.Elements(XName.Get(nameof(XmlStructure.BackupPackage.BackupFolder))); |
@@ -426,9 +442,16 @@ namespace Vrh.Log4Pro.MaintenanceConsole.BackupPackageManagerNS | @@ -426,9 +442,16 @@ namespace Vrh.Log4Pro.MaintenanceConsole.BackupPackageManagerNS | ||
426 | #region XmlStructure | 442 | #region XmlStructure |
427 | public static class XmlStructure | 443 | public static class XmlStructure |
428 | { | 444 | { |
429 | - public static class Attributes | 445 | + |
446 | + public static class CommonAttributes | ||
430 | { | 447 | { |
431 | - public static class TempDirectoryPath { public static class Values { public const string DEFAULT = ""; } } | 448 | + public static class Attributes |
449 | + { | ||
450 | + public static class TempDirectoryPath { public static class Values { public const string DEFAULT = ""; } } | ||
451 | + public static class PackageFilePath { public static class Values { public const string DEFAULT = ""; } } | ||
452 | + public static class PackageName { public static class Values { public const string DEFAULT = ""; } } | ||
453 | + public static class CreateExe { public static class Values { public const string DEFAULT = ""; } } | ||
454 | + } | ||
432 | } | 455 | } |
433 | public static class BackupPackage | 456 | public static class BackupPackage |
434 | { | 457 | { |
@@ -440,6 +463,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.BackupPackageManagerNS | @@ -440,6 +463,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.BackupPackageManagerNS | ||
440 | public static class CreateExe { public static class Values { public const bool DEFAULT = true; } } | 463 | public static class CreateExe { public static class Values { public const bool DEFAULT = true; } } |
441 | public static class IncludeFilenameMaskList { public static class Values { public const string DEFAULT = "*"; } } | 464 | public static class IncludeFilenameMaskList { public static class Values { public const string DEFAULT = "*"; } } |
442 | public static class PackageFilePath{ public static class Values { public const string DEFAULT = "BackupPackage_{TIMESTAMP}_{PACKAGENAME}"; } } | 465 | public static class PackageFilePath{ public static class Values { public const string DEFAULT = "BackupPackage_{TIMESTAMP}_{PACKAGENAME}"; } } |
466 | + public static class TempDirectoryPath { public static class Values { public const string DEFAULT = ""; } } | ||
443 | } | 467 | } |
444 | public static class BackupFolder | 468 | public static class BackupFolder |
445 | { | 469 | { |
Vrh.Log4Pro.MaintenanceConsole/Manager - FileCleanerManager.cs
@@ -124,9 +124,8 @@ namespace Vrh.Log4Pro.MaintenanceConsole.FileCleanerManagerNS | @@ -124,9 +124,8 @@ namespace Vrh.Log4Pro.MaintenanceConsole.FileCleanerManagerNS | ||
124 | } | 124 | } |
125 | else if (lineix == 2) | 125 | else if (lineix == 2) |
126 | { | 126 | { |
127 | - ColorConsole.Write($"{ws.Xml_CleanupDays}", ConsoleColor.Yellow, prefix: "Cleanup days:", bracket: "[]"); | ||
128 | var fc2 = ws.Xml_Recurse ? ConsoleColor.Green : ConsoleColor.Yellow; | 127 | var fc2 = ws.Xml_Recurse ? ConsoleColor.Green : ConsoleColor.Yellow; |
129 | - ColorConsole.Write($"{ws.Xml_Recurse}", fc2, prefix: ", Recurse:", bracket: "[]"); | 128 | + ColorConsole.Write($"{ws.Xml_Recurse}", fc2, prefix: "Recurse:", bracket: "[]"); |
130 | var fc0 = ws.Xml_RemoveEmptyFolder ? ConsoleColor.Green : ConsoleColor.Yellow; | 129 | var fc0 = ws.Xml_RemoveEmptyFolder ? ConsoleColor.Green : ConsoleColor.Yellow; |
131 | ColorConsole.Write($"{ws.Xml_RemoveEmptyFolder}", fc0, prefix: ", Remove empty folder:", bracket: "[]"); | 130 | ColorConsole.Write($"{ws.Xml_RemoveEmptyFolder}", fc0, prefix: ", Remove empty folder:", bracket: "[]"); |
132 | ColorConsole.WriteLine(ws.Xml_IncludeMask, ConsoleColor.Yellow, prefix: ", Include mask:"); | 131 | ColorConsole.WriteLine(ws.Xml_IncludeMask, ConsoleColor.Yellow, prefix: ", Include mask:"); |
@@ -142,8 +141,18 @@ namespace Vrh.Log4Pro.MaintenanceConsole.FileCleanerManagerNS | @@ -142,8 +141,18 @@ namespace Vrh.Log4Pro.MaintenanceConsole.FileCleanerManagerNS | ||
142 | if (lineix != INDEXBASE) { ColorConsole.Write(ws.Xml_OrConditionList ? "OR" : "AND", ConsoleColor.Yellow,suffix:" "); } | 141 | if (lineix != INDEXBASE) { ColorConsole.Write(ws.Xml_OrConditionList ? "OR" : "AND", ConsoleColor.Yellow,suffix:" "); } |
143 | ColorConsole.Write("Condition:"); | 142 | ColorConsole.Write("Condition:"); |
144 | ColorConsole.Write(c.Type.ToString(),ConsoleColor.Yellow, prefix: " Type:"); | 143 | ColorConsole.Write(c.Type.ToString(),ConsoleColor.Yellow, prefix: " Type:"); |
145 | - if (c.Type==FolderToClean.ConditionType.TimeStampInName) { ColorConsole.Write(c.TimestampConstructor, ConsoleColor.Yellow, prefix: ", TS constructor:"); } | ||
146 | - ColorConsole.Write(c.Limit.ToString(), ConsoleColor.Yellow, prefix: ", Limit:",suffix: c.Type == FolderToClean.ConditionType.Length ? "bytes" : "days"); | 144 | + if (c.Type==FolderToClean.ConditionType.Length) //hossz alapján |
145 | + { | ||
146 | + int climit = c.Limit.HasValue ? c.Limit.Value : ws.common_limitbytes.HasValue ? ws.common_limitbytes.Value: FolderToClean.XmlStructure.CommonAttributes.Attributes.LimitBytes.Values.DEFAULT; | ||
147 | + ColorConsole.Write(climit.ToString(), ConsoleColor.Yellow, prefix: ", Limit:", suffix: "bytes"); | ||
148 | + } | ||
149 | + else // időbélyeg alapján | ||
150 | + { | ||
151 | + var ctsc = !string.IsNullOrWhiteSpace(c.TimestampConstructor) ? c.TimestampConstructor : !string.IsNullOrWhiteSpace(ws.common_timestampconstructor) ? ws.common_timestampconstructor : FolderToClean.XmlStructure.CommonAttributes.Attributes.TimestampConstructor.Values.DEFAULT; | ||
152 | + ColorConsole.Write(ctsc, ConsoleColor.Yellow, prefix: ", TS constructor:"); | ||
153 | + int climit = c.Limit.HasValue ? c.Limit.Value : ws.common_limitdays.HasValue ? ws.common_limitdays.Value : FolderToClean.XmlStructure.CommonAttributes.Attributes.LimitDays.Values.DEFAULT; | ||
154 | + ColorConsole.Write(climit.ToString(), ConsoleColor.Yellow, prefix: ", Limit:", suffix: "days"); | ||
155 | + } | ||
147 | ColorConsole.WriteLine(); | 156 | ColorConsole.WriteLine(); |
148 | return " "; | 157 | return " "; |
149 | } | 158 | } |
@@ -198,7 +207,6 @@ namespace Vrh.Log4Pro.MaintenanceConsole.FileCleanerManagerNS | @@ -198,7 +207,6 @@ namespace Vrh.Log4Pro.MaintenanceConsole.FileCleanerManagerNS | ||
198 | var rgxmatch = rgx.Match(fi.FullName); | 207 | var rgxmatch = rgx.Match(fi.FullName); |
199 | if (rgxmatch.Success) | 208 | if (rgxmatch.Success) |
200 | { | 209 | { |
201 | - var daystodelete = ftc.Xml_CleanupDays; | ||
202 | var conditionlist = ftc.Xml_ConditionList; | 210 | var conditionlist = ftc.Xml_ConditionList; |
203 | if (conditionlist == null || !conditionlist.Any()) { return true; } | 211 | if (conditionlist == null || !conditionlist.Any()) { return true; } |
204 | 212 | ||
@@ -213,18 +221,22 @@ namespace Vrh.Log4Pro.MaintenanceConsole.FileCleanerManagerNS | @@ -213,18 +221,22 @@ namespace Vrh.Log4Pro.MaintenanceConsole.FileCleanerManagerNS | ||
213 | bool conditionresult = false; | 221 | bool conditionresult = false; |
214 | if (c.Type == FolderToClean.ConditionType.TimeStampInName) | 222 | if (c.Type == FolderToClean.ConditionType.TimeStampInName) |
215 | { | 223 | { |
216 | - var fileTSstr = VRH.Common.StringConstructor.ResolveConstructor(groupnamevalues, c.TimestampConstructor, "{}@@"); | 224 | + var fileTSstr = VRH.Common.StringConstructor.ResolveConstructorR(groupnamevalues, c.TimestampConstructor, "{}@@"); |
217 | 225 | ||
218 | try { var fileTS = DateTime.Parse(fileTSstr); conditionresult = DateTime.Now.Subtract(fileTS).TotalDays > c.Limit; } | 226 | try { var fileTS = DateTime.Parse(fileTSstr); conditionresult = DateTime.Now.Subtract(fileTS).TotalDays > c.Limit; } |
219 | catch | 227 | catch |
220 | { | 228 | { |
221 | var tscn = nameof(FolderToClean.XmlStructure.FolderToClean.Conditions.Condition.Attributes.TimestampConstructor); | 229 | var tscn = nameof(FolderToClean.XmlStructure.FolderToClean.Conditions.Condition.Attributes.TimestampConstructor); |
222 | var fprn = nameof(FolderToClean.XmlStructure.FolderToClean.IncludeFullpathRegexp); | 230 | var fprn = nameof(FolderToClean.XmlStructure.FolderToClean.IncludeFullpathRegexp); |
223 | - throw new Exception( | ||
224 | - $"Error in condition, type {FolderToClean.ConditionType.TimeStampInName}. {tscn} or {fprn} value incorrect!" | 231 | + string exmsg = $"Error in condition, type {FolderToClean.ConditionType.TimeStampInName}. {tscn} or {fprn} value incorrect!" |
225 | + $"\n Folder: {ftc.Xml_DirectoryPath}" | 232 | + $"\n Folder: {ftc.Xml_DirectoryPath}" |
233 | + + $"\n File: {fi.Name}" | ||
226 | + $"\n {tscn} : {c.TimestampConstructor}" | 234 | + $"\n {tscn} : {c.TimestampConstructor}" |
227 | - + $"\n {tscn} after substitution: {fileTSstr}"); | 235 | + + $"\n {tscn} after substitution: {fileTSstr}" |
236 | + + $"\n CONDITION RESULT FALSE IS USED!"; | ||
237 | + //throw new Exception(exmsg); | ||
238 | + ColorConsole.WriteLine(exmsg, ConsoleColor.Yellow); | ||
239 | + conditionresult = false; // ha nincs benne timestamp, akkor nem teljesül | ||
228 | } | 240 | } |
229 | } | 241 | } |
230 | else if (c.Type == FolderToClean.ConditionType.CreationTime) | 242 | else if (c.Type == FolderToClean.ConditionType.CreationTime) |
@@ -255,7 +267,6 @@ namespace Vrh.Log4Pro.MaintenanceConsole.FileCleanerManagerNS | @@ -255,7 +267,6 @@ namespace Vrh.Log4Pro.MaintenanceConsole.FileCleanerManagerNS | ||
255 | #region public CleanFiles | 267 | #region public CleanFiles |
256 | public static long CleanFolderFiles(DirectoryInfo d,FolderToClean ftc, bool delete) | 268 | public static long CleanFolderFiles(DirectoryInfo d,FolderToClean ftc, bool delete) |
257 | { | 269 | { |
258 | - int daystodelete = ftc.Xml_CleanupDays; | ||
259 | long cleanedsize = 0; | 270 | long cleanedsize = 0; |
260 | // Add file sizes. | 271 | // Add file sizes. |
261 | FileInfo[] fis = d.GetFiles(ftc.Xml_IncludeMask, SearchOption.TopDirectoryOnly); | 272 | FileInfo[] fis = d.GetFiles(ftc.Xml_IncludeMask, SearchOption.TopDirectoryOnly); |
@@ -291,16 +302,28 @@ namespace Vrh.Log4Pro.MaintenanceConsole.FileCleanerManagerNS | @@ -291,16 +302,28 @@ namespace Vrh.Log4Pro.MaintenanceConsole.FileCleanerManagerNS | ||
291 | public class FileCleanerManagerXmlProcessor : XmlParser | 302 | public class FileCleanerManagerXmlProcessor : XmlParser |
292 | { | 303 | { |
293 | private List<FolderToClean> _foldertocleanlist; | 304 | private List<FolderToClean> _foldertocleanlist; |
294 | - private int commoncleanupdays; | ||
295 | #region constructor | 305 | #region constructor |
296 | public FileCleanerManagerXmlProcessor(string xmlcs, string basefolder, string lcid) : base(xmlcs, basefolder, lcid, null) | 306 | public FileCleanerManagerXmlProcessor(string xmlcs, string basefolder, string lcid) : base(xmlcs, basefolder, lcid, null) |
297 | { | 307 | { |
298 | _foldertocleanlist = new List<FolderToClean>(); | 308 | _foldertocleanlist = new List<FolderToClean>(); |
299 | - commoncleanupdays = GetValue(nameof(FolderToClean.XmlStructure.Attributes.CleanupDays),this.RootElement, FolderToClean.XmlStructure.Attributes.CleanupDays.Values.DEFAULT); | 309 | + var commonattributeselement = GetXElement(nameof(FolderToClean.XmlStructure.CommonAttributes)); |
310 | + string commonlimitdaysstring = GetValue(nameof(FolderToClean.XmlStructure.CommonAttributes.Attributes.LimitDays), commonattributeselement, (string)null); | ||
311 | + int? commonlimitdays = | ||
312 | + string.IsNullOrWhiteSpace(commonlimitdaysstring) ? (int?)null | ||
313 | + : int.TryParse(commonlimitdaysstring, out int _commonlimitdays) ? _commonlimitdays | ||
314 | + : (int?)null; // ha hibás a megadott érték, akkor olyan, mintha nem is lenne megadva | ||
315 | + | ||
316 | + string commonlimitbytessstring = GetValue(nameof(FolderToClean.XmlStructure.CommonAttributes.Attributes.LimitBytes), commonattributeselement, (string)null); | ||
317 | + int? commonlimitbytes = | ||
318 | + string.IsNullOrWhiteSpace(commonlimitbytessstring) ? (int?)null | ||
319 | + : int.TryParse(commonlimitbytessstring, out int _commonlimitbytes) ? _commonlimitbytes | ||
320 | + : (int?)null; // ha hibás a megadott érték, akkor olyan, mintha nem is lenne megadva | ||
321 | + | ||
322 | + string commontimestampconstructor = GetValue(nameof(FolderToClean.XmlStructure.CommonAttributes.Attributes.TimestampConstructor), commonattributeselement, (string)null); | ||
300 | var ftcxmllist = GetAllXElements(nameof(FolderToClean.XmlStructure.FolderToClean)); | 323 | var ftcxmllist = GetAllXElements(nameof(FolderToClean.XmlStructure.FolderToClean)); |
301 | if (ftcxmllist != null && ftcxmllist.Any()) | 324 | if (ftcxmllist != null && ftcxmllist.Any()) |
302 | { | 325 | { |
303 | - foreach (var ftcxml in ftcxmllist) { var ws = new FolderToClean(ftcxml, commoncleanupdays); if (ws.Valid) { _foldertocleanlist.Add(ws); } } | 326 | + foreach (var ftcxml in ftcxmllist) { var ws = new FolderToClean(ftcxml, commonlimitdays, commonlimitbytes,commontimestampconstructor); if (ws.Valid) { _foldertocleanlist.Add(ws); } } |
304 | } | 327 | } |
305 | } | 328 | } |
306 | #endregion constructor | 329 | #endregion constructor |
@@ -323,21 +346,28 @@ namespace Vrh.Log4Pro.MaintenanceConsole.FileCleanerManagerNS | @@ -323,21 +346,28 @@ namespace Vrh.Log4Pro.MaintenanceConsole.FileCleanerManagerNS | ||
323 | public string Xml_IncludeFullpathRegexp; | 346 | public string Xml_IncludeFullpathRegexp; |
324 | public bool Xml_OrConditionList = true; | 347 | public bool Xml_OrConditionList = true; |
325 | public List<Condition> Xml_ConditionList; | 348 | public List<Condition> Xml_ConditionList; |
326 | - public int Xml_CleanupDays; | ||
327 | 349 | ||
328 | public bool FolderExists; | 350 | public bool FolderExists; |
329 | public long SizeFolderTotal; | 351 | public long SizeFolderTotal; |
330 | public long SizeSelectedBeforeClean; | 352 | public long SizeSelectedBeforeClean; |
331 | public long SizeSelectedAfterClean { get { return SizeSelectedBeforeClean - SizeSelectedCleaned; } } | 353 | public long SizeSelectedAfterClean { get { return SizeSelectedBeforeClean - SizeSelectedCleaned; } } |
332 | public long SizeSelectedCleaned; | 354 | public long SizeSelectedCleaned; |
355 | + | ||
356 | + public int? common_limitdays; | ||
357 | + public int? common_limitbytes; | ||
358 | + public string common_timestampconstructor; | ||
359 | + | ||
333 | #endregion fields | 360 | #endregion fields |
334 | 361 | ||
335 | #region basic constructor | 362 | #region basic constructor |
336 | public FolderToClean() { } | 363 | public FolderToClean() { } |
337 | #endregion basic constructor | 364 | #endregion basic constructor |
338 | #region xml constructor | 365 | #region xml constructor |
339 | - public FolderToClean(XElement foldertocleanxml,int commoncleanupdays) | 366 | + public FolderToClean(XElement foldertocleanxml,int? commonlimitdays,int? commonlimitbytes,string commontimestampconstructor) |
340 | { | 367 | { |
368 | + common_limitdays = commonlimitdays; | ||
369 | + common_limitbytes = commonlimitbytes; | ||
370 | + common_timestampconstructor = commontimestampconstructor; | ||
341 | Valid = true; | 371 | Valid = true; |
342 | string ATTRIBUTEMANDATORY = nameof(XmlStructure.FolderToClean) + " attribute is mandatory! Name: {0}"; | 372 | string ATTRIBUTEMANDATORY = nameof(XmlStructure.FolderToClean) + " attribute is mandatory! Name: {0}"; |
343 | Xml_Key = GetValue(nameof(XmlStructure.FolderToClean.Attributes.Key), foldertocleanxml, XmlStructure.FolderToClean.Attributes.Key.Values.DEFAULT); | 373 | Xml_Key = GetValue(nameof(XmlStructure.FolderToClean.Attributes.Key), foldertocleanxml, XmlStructure.FolderToClean.Attributes.Key.Values.DEFAULT); |
@@ -347,7 +377,6 @@ namespace Vrh.Log4Pro.MaintenanceConsole.FileCleanerManagerNS | @@ -347,7 +377,6 @@ namespace Vrh.Log4Pro.MaintenanceConsole.FileCleanerManagerNS | ||
347 | Xml_RemoveEmptyFolder = GetValue(nameof(XmlStructure.FolderToClean.Attributes.RemoveEmptyFolder), foldertocleanxml, XmlStructure.FolderToClean.Attributes.RemoveEmptyFolder.Values.DEFAULT); | 377 | Xml_RemoveEmptyFolder = GetValue(nameof(XmlStructure.FolderToClean.Attributes.RemoveEmptyFolder), foldertocleanxml, XmlStructure.FolderToClean.Attributes.RemoveEmptyFolder.Values.DEFAULT); |
348 | Xml_IncludeMask = GetValue(nameof(XmlStructure.FolderToClean.Attributes.IncludeMask), foldertocleanxml, XmlStructure.FolderToClean.Attributes.IncludeMask.Values.DEFAULT); | 378 | Xml_IncludeMask = GetValue(nameof(XmlStructure.FolderToClean.Attributes.IncludeMask), foldertocleanxml, XmlStructure.FolderToClean.Attributes.IncludeMask.Values.DEFAULT); |
349 | Xml_IncludeFullpathRegexp = GetValue(GetXElement(foldertocleanxml,nameof(XmlStructure.FolderToClean.IncludeFullpathRegexp)), XmlStructure.FolderToClean.IncludeFullpathRegexp.Values.DEFAULT); | 379 | Xml_IncludeFullpathRegexp = GetValue(GetXElement(foldertocleanxml,nameof(XmlStructure.FolderToClean.IncludeFullpathRegexp)), XmlStructure.FolderToClean.IncludeFullpathRegexp.Values.DEFAULT); |
350 | - Xml_CleanupDays = GetValue(GetXElement(foldertocleanxml,nameof(XmlStructure.FolderToClean.Attributes.CleanupDays)), commoncleanupdays); | ||
351 | Xml_ConditionList = new List<Condition>(); | 380 | Xml_ConditionList = new List<Condition>(); |
352 | //var conditionxmlList = GetAllXElements(foldertocleanxml, nameof(XmlStructure.FolderToClean.Conditions), nameof(XmlStructure.FolderToClean.Conditions.Condition)); | 381 | //var conditionxmlList = GetAllXElements(foldertocleanxml, nameof(XmlStructure.FolderToClean.Conditions), nameof(XmlStructure.FolderToClean.Conditions.Condition)); |
353 | var conditionsxml = foldertocleanxml.Element(XName.Get(nameof(XmlStructure.FolderToClean.Conditions))); | 382 | var conditionsxml = foldertocleanxml.Element(XName.Get(nameof(XmlStructure.FolderToClean.Conditions))); |
@@ -355,7 +384,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.FileCleanerManagerNS | @@ -355,7 +384,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.FileCleanerManagerNS | ||
355 | if (conditionxmlList!=null && conditionxmlList.Any()) | 384 | if (conditionxmlList!=null && conditionxmlList.Any()) |
356 | { | 385 | { |
357 | Xml_OrConditionList = GetValue(nameof(XmlStructure.FolderToClean.Conditions.Attributes.OrConditionList), conditionsxml, XmlStructure.FolderToClean.Conditions.Attributes.OrConditionList.Values.DEFAULT); | 386 | Xml_OrConditionList = GetValue(nameof(XmlStructure.FolderToClean.Conditions.Attributes.OrConditionList), conditionsxml, XmlStructure.FolderToClean.Conditions.Attributes.OrConditionList.Values.DEFAULT); |
358 | - foreach (var conditionxml in conditionxmlList) { Xml_ConditionList.Add(new Condition(conditionxml)); } | 387 | + foreach (var conditionxml in conditionxmlList) { Xml_ConditionList.Add(new Condition(conditionxml, commontimestampconstructor, commonlimitdays, commonlimitbytes)); } |
359 | } | 388 | } |
360 | } | 389 | } |
361 | #endregion xml constructor | 390 | #endregion xml constructor |
@@ -370,7 +399,6 @@ namespace Vrh.Log4Pro.MaintenanceConsole.FileCleanerManagerNS | @@ -370,7 +399,6 @@ namespace Vrh.Log4Pro.MaintenanceConsole.FileCleanerManagerNS | ||
370 | Xml_IncludeMask = ftc.Xml_IncludeMask; | 399 | Xml_IncludeMask = ftc.Xml_IncludeMask; |
371 | Xml_IncludeFullpathRegexp = ftc.Xml_IncludeFullpathRegexp; | 400 | Xml_IncludeFullpathRegexp = ftc.Xml_IncludeFullpathRegexp; |
372 | Xml_OrConditionList = ftc.Xml_OrConditionList; | 401 | Xml_OrConditionList = ftc.Xml_OrConditionList; |
373 | - Xml_CleanupDays = ftc.Xml_CleanupDays; | ||
374 | Xml_ConditionList = ftc.Xml_ConditionList.Select(c=>new Condition(c)).ToList(); ; | 402 | Xml_ConditionList = ftc.Xml_ConditionList.Select(c=>new Condition(c)).ToList(); ; |
375 | } | 403 | } |
376 | #endregion cloner constructor | 404 | #endregion cloner constructor |
@@ -387,30 +415,36 @@ namespace Vrh.Log4Pro.MaintenanceConsole.FileCleanerManagerNS | @@ -387,30 +415,36 @@ namespace Vrh.Log4Pro.MaintenanceConsole.FileCleanerManagerNS | ||
387 | } | 415 | } |
388 | #endregion cloner constructor | 416 | #endregion cloner constructor |
389 | #region constructor | 417 | #region constructor |
390 | - public Condition(XElement cxml) | 418 | + public Condition(XElement cxml, string commontimestampconstructor,int? commonlimitdays,int? commonlimitbytes) |
391 | { | 419 | { |
392 | var typestr = GetValue(nameof(XmlStructure.FolderToClean.Conditions.Condition.Attributes.Type), cxml, XmlStructure.FolderToClean.Conditions.Condition.Attributes.Type.Values.DEFAULT); | 420 | var typestr = GetValue(nameof(XmlStructure.FolderToClean.Conditions.Condition.Attributes.Type), cxml, XmlStructure.FolderToClean.Conditions.Condition.Attributes.Type.Values.DEFAULT); |
393 | this.Type = (ConditionType)Enum.Parse(typeof(ConditionType),typestr); | 421 | this.Type = (ConditionType)Enum.Parse(typeof(ConditionType),typestr); |
394 | - TimestampConstructor = GetValue(nameof(XmlStructure.FolderToClean.Conditions.Condition.Attributes.TimestampConstructor), cxml, XmlStructure.FolderToClean.Conditions.Condition.Attributes.TimestampConstructor.Values.DEFAULT); | ||
395 | - Limit = GetValue(nameof(XmlStructure.FolderToClean.Conditions.Condition.Attributes.Limit), cxml, XmlStructure.FolderToClean.Conditions.Condition.Attributes.Limit.Values.DEFAULT); | 422 | + |
423 | + TimestampConstructor = GetValue(nameof(XmlStructure.FolderToClean.Conditions.Condition.Attributes.TimestampConstructor), cxml, commontimestampconstructor); | ||
424 | + if (string.IsNullOrWhiteSpace(TimestampConstructor)) { TimestampConstructor = XmlStructure.CommonAttributes.Attributes.TimestampConstructor.Values.DEFAULT; } | ||
425 | + | ||
426 | + string limitstring = GetValue<string>(nameof(XmlStructure.FolderToClean.Conditions.Condition.Attributes.Limit), cxml, null); | ||
427 | + if (string.IsNullOrWhiteSpace(limitstring)) { Limit = this.Type == ConditionType.Length ? commonlimitbytes: commonlimitdays; } | ||
428 | + else if (!string.IsNullOrWhiteSpace(limitstring) && int.TryParse(limitstring, out int _limit)) { Limit = _limit; } | ||
429 | + | ||
430 | + if (!Limit.HasValue) { Limit = this.Type == ConditionType.Length ? XmlStructure.CommonAttributes.Attributes.LimitBytes.Values.DEFAULT : XmlStructure.CommonAttributes.Attributes.LimitDays.Values.DEFAULT; } | ||
396 | } | 431 | } |
397 | #endregion constructor | 432 | #endregion constructor |
398 | public ConditionType Type; | 433 | public ConditionType Type; |
399 | public string TimestampConstructor; | 434 | public string TimestampConstructor; |
400 | - public int Limit; | 435 | + public int? Limit; |
401 | } | 436 | } |
402 | #endregion Condition | 437 | #endregion Condition |
403 | #region XmlStructure | 438 | #region XmlStructure |
404 | public static class XmlStructure | 439 | public static class XmlStructure |
405 | { | 440 | { |
406 | - public static class Attributes | 441 | + public static class CommonAttributes |
407 | { | 442 | { |
408 | - public static class CleanupDays | 443 | + public static class Attributes |
409 | { | 444 | { |
410 | - public static class Values | ||
411 | - { | ||
412 | - public const int DEFAULT = 7; | ||
413 | - } | 445 | + public static class LimitDays { public static class Values { public const int DEFAULT = 7; } } |
446 | + public static class LimitBytes { public static class Values { public const int DEFAULT = 500000; } } | ||
447 | + public static class TimestampConstructor { public static class Values { public const string DEFAULT = "{YEAR}.{MONTH}.{DAY} {HOUR}:{MINUTE}:{SECOND}"; } } | ||
414 | } | 448 | } |
415 | } | 449 | } |
416 | public static class FolderToClean | 450 | public static class FolderToClean |
@@ -419,13 +453,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.FileCleanerManagerNS | @@ -419,13 +453,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.FileCleanerManagerNS | ||
419 | { | 453 | { |
420 | public static class Key { public static class Values { public const string DEFAULT = ""; } } | 454 | public static class Key { public static class Values { public const string DEFAULT = ""; } } |
421 | public static class Directory { } | 455 | public static class Directory { } |
422 | - public static class CleanupDays | ||
423 | - { | ||
424 | - public static class Values | ||
425 | - { | ||
426 | - public const int DEFAULT = XmlStructure.Attributes.CleanupDays.Values.DEFAULT; | ||
427 | - } | ||
428 | - } | 456 | + public static class LimitDays { public static class Values { public const int DEFAULT = XmlStructure.CommonAttributes.Attributes.LimitDays.Values.DEFAULT; } } |
429 | public static class Recurse | 457 | public static class Recurse |
430 | { | 458 | { |
431 | public static class Values | 459 | public static class Values |
@@ -483,20 +511,8 @@ namespace Vrh.Log4Pro.MaintenanceConsole.FileCleanerManagerNS | @@ -483,20 +511,8 @@ namespace Vrh.Log4Pro.MaintenanceConsole.FileCleanerManagerNS | ||
483 | public static class CreationTime { } | 511 | public static class CreationTime { } |
484 | } | 512 | } |
485 | } | 513 | } |
486 | - public static class TimestampConstructor | ||
487 | - { | ||
488 | - public static class Values | ||
489 | - { | ||
490 | - public const string DEFAULT = "{YEAR}.{MONTH}.{DAY} {HOUR}:{MINUTE}:{SECOND}"; | ||
491 | - } | ||
492 | - } | ||
493 | - public static class Limit | ||
494 | - { | ||
495 | - public static class Values | ||
496 | - { | ||
497 | - public const int DEFAULT = XmlStructure.Attributes.CleanupDays.Values.DEFAULT; | ||
498 | - } | ||
499 | - } | 514 | + public static class TimestampConstructor { } |
515 | + public static class Limit { } | ||
500 | } | 516 | } |
501 | } | 517 | } |
502 | } | 518 | } |
Vrh.Log4Pro.MaintenanceConsole/Manager - SQLDataBaseManager.cs
@@ -403,7 +403,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.SQLDataBaseManagerNS | @@ -403,7 +403,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.SQLDataBaseManagerNS | ||
403 | vars.Add(nameof(DBSubstitutionName.DBDATAGROUP), ""); | 403 | vars.Add(nameof(DBSubstitutionName.DBDATAGROUP), ""); |
404 | vars.Add(nameof(DBSubstitutionName.BACKUPTS), backupts); | 404 | vars.Add(nameof(DBSubstitutionName.BACKUPTS), backupts); |
405 | 405 | ||
406 | - backupfileNameOnly = VRH.Common.StringConstructor.ResolveConstructor(vars, backupfileNameOnly, "{}@@"); | 406 | + backupfileNameOnly = VRH.Common.StringConstructor.ResolveConstructorR(vars, backupfileNameOnly, "{}@@"); |
407 | 407 | ||
408 | string backupfilename = backupfileNameOnly + ".bak"; | 408 | string backupfilename = backupfileNameOnly + ".bak"; |
409 | string backupFullName = Path.Combine(backupdirectorypath, backupfilename); | 409 | string backupFullName = Path.Combine(backupdirectorypath, backupfilename); |
@@ -443,7 +443,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.SQLDataBaseManagerNS | @@ -443,7 +443,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.SQLDataBaseManagerNS | ||
443 | vars.Add(nameof(DBSubstitutionName.DBONAME), ""); | 443 | vars.Add(nameof(DBSubstitutionName.DBONAME), ""); |
444 | vars.Add(nameof(DBSubstitutionName.DBDATAGROUP), ""); | 444 | vars.Add(nameof(DBSubstitutionName.DBDATAGROUP), ""); |
445 | vars.Add(nameof(DBSubstitutionName.BACKUPTS), "*"); | 445 | vars.Add(nameof(DBSubstitutionName.BACKUPTS), "*"); |
446 | - filenamemask = VRH.Common.StringConstructor.ResolveConstructor(vars, filenamemask, "{}@@"); | 446 | + filenamemask = VRH.Common.StringConstructor.ResolveConstructorR(vars, filenamemask, "{}@@"); |
447 | var filelist = new DirectoryInfo(sqld.Xml_BackupTargetDirectoryPath)?.GetFiles(filenamemask)?.ToList(); | 447 | var filelist = new DirectoryInfo(sqld.Xml_BackupTargetDirectoryPath)?.GetFiles(filenamemask)?.ToList(); |
448 | var filelistordered = filelist?.OrderByDescending(x => x.CreationTime).ToList(); | 448 | var filelistordered = filelist?.OrderByDescending(x => x.CreationTime).ToList(); |
449 | return filelistordered; | 449 | return filelistordered; |
@@ -590,7 +590,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.SQLDataBaseManagerNS | @@ -590,7 +590,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.SQLDataBaseManagerNS | ||
590 | { | 590 | { |
591 | var sqlc = new Microsoft.Data.SqlClient.SqlConnection(sqlconnectionstring); | 591 | var sqlc = new Microsoft.Data.SqlClient.SqlConnection(sqlconnectionstring); |
592 | 592 | ||
593 | - sqltxt = VRH.Common.StringConstructor.ResolveConstructor(vars, sqltxt, "{}@@"); | 593 | + sqltxt = VRH.Common.StringConstructor.ResolveConstructorR(vars, sqltxt, "{}@@"); |
594 | 594 | ||
595 | sqlc.Open(); | 595 | sqlc.Open(); |
596 | string SQLBatchTxt = ""; // ebben lesznek az sql script-en belüli batch-ek összerakva | 596 | string SQLBatchTxt = ""; // ebben lesznek az sql script-en belüli batch-ek összerakva |
@@ -731,7 +731,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.SQLDataBaseManagerNS | @@ -731,7 +731,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.SQLDataBaseManagerNS | ||
731 | { | 731 | { |
732 | vars[nameof(DBSubstitutionName.DBONAME)] = ""; | 732 | vars[nameof(DBSubstitutionName.DBONAME)] = ""; |
733 | vars[nameof(DBSubstitutionName.DBDATAGROUP)] = ""; | 733 | vars[nameof(DBSubstitutionName.DBDATAGROUP)] = ""; |
734 | - string zipfilename = VRH.Common.StringConstructor.ResolveConstructor(vars, backupfilenamemask, "{}@@") + ".zip"; | 734 | + string zipfilename = VRH.Common.StringConstructor.ResolveConstructorR(vars, backupfilenamemask, "{}@@") + ".zip"; |
735 | zipfilefullpath = Path.Combine(backupdirectorypath, zipfilename); | 735 | zipfilefullpath = Path.Combine(backupdirectorypath, zipfilename); |
736 | tempbackupdirectorypath = Path.Combine(backupdirectorypath, "TEMP_" + Path.GetFileNameWithoutExtension(zipfilename)); | 736 | tempbackupdirectorypath = Path.Combine(backupdirectorypath, "TEMP_" + Path.GetFileNameWithoutExtension(zipfilename)); |
737 | if (Directory.Exists(tempbackupdirectorypath)) { Directory.Delete(tempbackupdirectorypath, recursive: true); } | 737 | if (Directory.Exists(tempbackupdirectorypath)) { Directory.Delete(tempbackupdirectorypath, recursive: true); } |
@@ -776,7 +776,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.SQLDataBaseManagerNS | @@ -776,7 +776,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.SQLDataBaseManagerNS | ||
776 | vars[nameof(DBSubstitutionName.DBONAME)]=namevalue; | 776 | vars[nameof(DBSubstitutionName.DBONAME)]=namevalue; |
777 | vars[nameof(DBSubstitutionName.DBDATAGROUP)]=sqldbobj.GetType().Name; | 777 | vars[nameof(DBSubstitutionName.DBDATAGROUP)]=sqldbobj.GetType().Name; |
778 | 778 | ||
779 | - string filename = VRH.Common.StringConstructor.ResolveConstructor(vars, backupfilenamemask, "{}@@"); | 779 | + string filename = VRH.Common.StringConstructor.ResolveConstructorR(vars, backupfilenamemask, "{}@@"); |
780 | if (lastfilename!=filename) | 780 | if (lastfilename!=filename) |
781 | { | 781 | { |
782 | var i = 2; | 782 | var i = 2; |
@@ -849,7 +849,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.SQLDataBaseManagerNS | @@ -849,7 +849,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.SQLDataBaseManagerNS | ||
849 | { | 849 | { |
850 | vars[nameof(DBSubstitutionName.DBONAME)] = ""; | 850 | vars[nameof(DBSubstitutionName.DBONAME)] = ""; |
851 | vars[nameof(DBSubstitutionName.DBDATAGROUP)] = ""; | 851 | vars[nameof(DBSubstitutionName.DBDATAGROUP)] = ""; |
852 | - string zipfilename = VRH.Common.StringConstructor.ResolveConstructor(vars, backupfilenamemask, "{}@@") + ".zip"; | 852 | + string zipfilename = VRH.Common.StringConstructor.ResolveConstructorR(vars, backupfilenamemask, "{}@@") + ".zip"; |
853 | tempbackupdirectorypath = Path.Combine(backupdirectorypath, "TEMP_"+Path.GetFileNameWithoutExtension(zipfilename)); | 853 | tempbackupdirectorypath = Path.Combine(backupdirectorypath, "TEMP_"+Path.GetFileNameWithoutExtension(zipfilename)); |
854 | zipfilefullpath = Path.Combine(backupdirectorypath, zipfilename); | 854 | zipfilefullpath = Path.Combine(backupdirectorypath, zipfilename); |
855 | if (Directory.Exists(tempbackupdirectorypath)) { Directory.Delete(tempbackupdirectorypath, recursive: true); } | 855 | if (Directory.Exists(tempbackupdirectorypath)) { Directory.Delete(tempbackupdirectorypath, recursive: true); } |
@@ -911,7 +911,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.SQLDataBaseManagerNS | @@ -911,7 +911,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.SQLDataBaseManagerNS | ||
911 | string tn_schemaname = tn.Split('.')[1]; | 911 | string tn_schemaname = tn.Split('.')[1]; |
912 | string tn_name = tn.Split('.')[2]; | 912 | string tn_name = tn.Split('.')[2]; |
913 | vars[nameof(DBSubstitutionName.DBONAME)] = $"{tn_schemaname}.{tn_name}"; | 913 | vars[nameof(DBSubstitutionName.DBONAME)] = $"{tn_schemaname}.{tn_name}"; |
914 | - filename = VRH.Common.StringConstructor.ResolveConstructor(vars, backupfilenamemask, "{}@@"); | 914 | + filename = VRH.Common.StringConstructor.ResolveConstructorR(vars, backupfilenamemask, "{}@@"); |
915 | filefullname = Path.Combine(backupdirectorypath, filename); | 915 | filefullname = Path.Combine(backupdirectorypath, filename); |
916 | if (lastfilefullname!=filefullname && lastfilefullname!=null) | 916 | if (lastfilefullname!=filefullname && lastfilefullname!=null) |
917 | { | 917 | { |
Vrh.Log4Pro.MaintenanceConsole/Properties/AssemblyInfo.cs
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices; | @@ -32,5 +32,5 @@ using System.Runtime.InteropServices; | ||
32 | // You can specify all the values or you can default the Build and Revision Numbers | 32 | // You can specify all the values or you can default the Build and Revision Numbers |
33 | // by using the '*' as shown below: | 33 | // by using the '*' as shown below: |
34 | // [assembly: AssemblyVersion("1.0.*")] | 34 | // [assembly: AssemblyVersion("1.0.*")] |
35 | -[assembly: AssemblyVersion("1.2.4.0")] | ||
36 | -[assembly: AssemblyFileVersion("1.2.4.0")] | 35 | +[assembly: AssemblyVersion("1.3.0.0")] |
36 | +[assembly: AssemblyFileVersion("1.3.0.0")] |
Vrh.Log4Pro.MaintenanceConsole/Vrh.Log4Pro.MaintenanceConsole.csproj
@@ -336,14 +336,14 @@ | @@ -336,14 +336,14 @@ | ||
336 | <Reference Include="Microsoft.CSharp" /> | 336 | <Reference Include="Microsoft.CSharp" /> |
337 | <Reference Include="System.Data" /> | 337 | <Reference Include="System.Data" /> |
338 | <Reference Include="System.Xml" /> | 338 | <Reference Include="System.Xml" /> |
339 | - <Reference Include="VRH.Common, Version=2.20.1.0, Culture=neutral, processorArchitecture=MSIL"> | ||
340 | - <HintPath>..\packages\VRH.Common.2.20.1\lib\net45\VRH.Common.dll</HintPath> | 339 | + <Reference Include="VRH.Common, Version=2.21.2.0, Culture=neutral, processorArchitecture=MSIL"> |
340 | + <HintPath>..\packages\VRH.Common.2.21.2\lib\net45\VRH.Common.dll</HintPath> | ||
341 | </Reference> | 341 | </Reference> |
342 | <Reference Include="Vrh.Web.Providers, Version=2.0.2.0, Culture=neutral, processorArchitecture=MSIL"> | 342 | <Reference Include="Vrh.Web.Providers, Version=2.0.2.0, Culture=neutral, processorArchitecture=MSIL"> |
343 | <HintPath>..\packages\VRH.Web.Providers.2.0.2\lib\net452\Vrh.Web.Providers.dll</HintPath> | 343 | <HintPath>..\packages\VRH.Web.Providers.2.0.2\lib\net452\Vrh.Web.Providers.dll</HintPath> |
344 | </Reference> | 344 | </Reference> |
345 | - <Reference Include="Vrh.XmlProcessing, Version=1.26.1.0, Culture=neutral, processorArchitecture=MSIL"> | ||
346 | - <HintPath>..\packages\Vrh.XmlProcessing.1.26.1\lib\net45\Vrh.XmlProcessing.dll</HintPath> | 345 | + <Reference Include="Vrh.XmlProcessing, Version=1.27.0.0, Culture=neutral, processorArchitecture=MSIL"> |
346 | + <HintPath>..\packages\Vrh.XmlProcessing.1.27.0\lib\net45\Vrh.XmlProcessing.dll</HintPath> | ||
347 | </Reference> | 347 | </Reference> |
348 | </ItemGroup> | 348 | </ItemGroup> |
349 | <ItemGroup> | 349 | <ItemGroup> |
Vrh.Log4Pro.MaintenanceConsole/packages.config
@@ -71,7 +71,7 @@ | @@ -71,7 +71,7 @@ | ||
71 | <package id="System.Threading.Timer" version="4.0.1" targetFramework="net472" /> | 71 | <package id="System.Threading.Timer" version="4.0.1" targetFramework="net472" /> |
72 | <package id="System.Xml.ReaderWriter" version="4.0.11" targetFramework="net472" /> | 72 | <package id="System.Xml.ReaderWriter" version="4.0.11" targetFramework="net472" /> |
73 | <package id="System.Xml.XDocument" version="4.0.11" targetFramework="net472" /> | 73 | <package id="System.Xml.XDocument" version="4.0.11" targetFramework="net472" /> |
74 | - <package id="VRH.Common" version="2.20.1" targetFramework="net472" /> | 74 | + <package id="VRH.Common" version="2.21.2" targetFramework="net472" /> |
75 | <package id="VRH.Web.Providers" version="2.0.2" targetFramework="net472" /> | 75 | <package id="VRH.Web.Providers" version="2.0.2" targetFramework="net472" /> |
76 | - <package id="Vrh.XmlProcessing" version="1.26.1" targetFramework="net472" /> | 76 | + <package id="Vrh.XmlProcessing" version="1.27.0" targetFramework="net472" /> |
77 | </packages> | 77 | </packages> |
78 | \ No newline at end of file | 78 | \ No newline at end of file |