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 |