HelperMetrologyFiles.SortAndDelete

HelperEventLog.ClearEventLogs
This commit is contained in:
2024-01-26 14:13:55 -07:00
parent 58c4b9e487
commit e0f591e987
11 changed files with 276 additions and 13 deletions

View File

@ -1,4 +1,5 @@
using File_Watcher.Models;
using System.Globalization;
using System.Text.RegularExpressions;
namespace File_Watcher.Helpers;
@ -12,9 +13,13 @@ internal static partial class HelperStratus
private static void TryMoveFile(AppSettings appSettings, string checkFile)
{
string line;
string weekYearDirectory;
List<string> collection = [];
DateTime dateTime = DateTime.Now;
Calendar calendar = new CultureInfo("en-US").Calendar;
char start = appSettings.StratusConfiguration.FileDelimiterPattern[0];
string[] lines = !File.Exists(checkFile) ? [] : File.ReadAllLines(checkFile);
string weekOfYear = calendar.GetWeekOfYear(dateTime, CalendarWeekRule.FirstDay, DayOfWeek.Sunday).ToString("00");
for (int i = 0; i < lines.Length; i++)
{
line = lines[i];
@ -23,7 +28,10 @@ internal static partial class HelperStratus
continue;
if (!Regex.Match(line, appSettings.StratusConfiguration.FileDelimiterPattern).Success)
continue;
File.WriteAllLines(Path.Combine(appSettings.WatchDirectory, $"{DateTime.Now.Ticks}.txt"), collection);
weekYearDirectory = Path.Combine(appSettings.WatchDirectory, $"{dateTime.Year}_Week_{weekOfYear}");
if (!Directory.Exists(weekYearDirectory))
_ = Directory.CreateDirectory(weekYearDirectory);
File.WriteAllLines(Path.Combine(weekYearDirectory, $"{dateTime.Ticks}.txt"), collection);
collection.Clear();
for (int j = i + 1; j < lines.Length; j++)
collection.Add(lines[j]);
@ -35,11 +43,14 @@ internal static partial class HelperStratus
internal static bool MoveFile(AppSettings appSettings, ILogger<Worker> logger)
{
string file = Path.Combine(appSettings.WatchDirectory, appSettings.StratusConfiguration.WatchFile);
string checkFile = Path.Combine(appSettings.WatchDirectory, appSettings.StratusConfiguration.WatchFile);
try
{ TryMoveFile(appSettings, file); }
{ TryMoveFile(appSettings, checkFile); }
catch (Exception ex)
{ logger.LogError(ex, "Inner loop error!"); }
{
logger.LogError(ex, "Inner loop error!");
Thread.Sleep(appSettings.MillisecondsDelay * 5);
}
return true;
}