file-watcher/Helpers/HelperWaferCounter.cs
Mike Phares 3f7b95c916 Separate configuration settings
Added EAFLog
Testing Stratus file
2023-11-16 15:15:58 -07:00

43 lines
1.7 KiB
C#

using File_Watcher.Models;
namespace File_Watcher.Helpers;
internal static partial class HelperWaferCounter
{
internal static bool MoveFile(AppSettings appSettings, ILogger<Worker> logger)
{
string[] files;
string checkFile;
FileInfo fileInfo;
string checkDirectory;
string[] directories = Directory.GetDirectories(appSettings.WatchDirectory, "*", SearchOption.TopDirectoryOnly);
foreach (string directory in directories)
{
checkDirectory = !appSettings.WaferCounterConfiguration.MatchPath ? appSettings.WaferCounterConfiguration.Destination : Path.Combine(appSettings.WaferCounterConfiguration.Destination, Path.GetFileName(directory));
try
{
if (!Directory.Exists(checkDirectory))
_ = Directory.CreateDirectory(checkDirectory);
files = Directory.GetFiles(directory, "*", SearchOption.TopDirectoryOnly);
foreach (string file in files)
{
fileInfo = new(file);
if (new TimeSpan(DateTime.Now.Ticks - fileInfo.LastWriteTime.Ticks).TotalMilliseconds < appSettings.MillisecondsDelay)
continue;
checkFile = Path.Combine(checkDirectory, Path.GetFileName(file));
if (File.Exists(checkFile))
continue;
try
{ File.Move(file, checkFile); }
catch (Exception ex)
{ logger.LogError(ex, "Inner loop error!"); }
}
}
catch (Exception ex)
{ logger.LogError(ex, "Loop error!"); }
}
return true;
}
}