diff --git a/Adaptation/FileHandlers/Dummy/FileRead.cs b/Adaptation/FileHandlers/Dummy/FileRead.cs index 97cfb9b..6ef5f81 100644 --- a/Adaptation/FileHandlers/Dummy/FileRead.cs +++ b/Adaptation/FileHandlers/Dummy/FileRead.cs @@ -220,61 +220,47 @@ public class FileRead : Shared.FileRead, IFileRead { try { - string pathSegment; - string monARessource; + string sourceParentDirectory; + string targetParentDirectory; DateTime dateTime = DateTime.Now; - if (!_FileConnectorConfiguration.TargetFileLocation.Contains(_FileConnectorConfiguration.SourceFileLocation)) - throw new Exception("Target must start with source!"); + if (!string.IsNullOrEmpty(Path.GetFileName(_FileConnectorConfiguration.SourceFileLocation))) + sourceParentDirectory = Path.GetDirectoryName(_FileConnectorConfiguration.SourceFileLocation); + else + sourceParentDirectory = Path.GetDirectoryName(Path.GetDirectoryName(_FileConnectorConfiguration.SourceFileLocation)); + if (!string.IsNullOrEmpty(Path.GetFileName(_FileConnectorConfiguration.TargetFileLocation))) + targetParentDirectory = Path.GetDirectoryName(_FileConnectorConfiguration.TargetFileLocation); + else + targetParentDirectory = Path.GetDirectoryName(Path.GetDirectoryName(_FileConnectorConfiguration.TargetFileLocation)); + if (sourceParentDirectory != targetParentDirectory) + throw new Exception("Target and source must have the same parent for Si Dummy FileConnectorConfiguration!"); bool check = dateTime.Hour > 7 && dateTime.Hour < 18 && dateTime.DayOfWeek != DayOfWeek.Sunday && dateTime.DayOfWeek != DayOfWeek.Saturday; if (!_IsEAFHosted || check) { - string checkSegment; - string checkDirectory; + string monARessource; string sourceFileFilter; string sourceArchiveFile; - string sourceFileLocation; string weekOfYear = _Calendar.GetWeekOfYear(dateTime, CalendarWeekRule.FirstDay, DayOfWeek.Sunday).ToString("00"); string traceDummyDirectory = Path.Combine(Path.GetPathRoot(_TracePath), "TracesDummy", _CellInstanceName, "Source", $"{dateTime:yyyy}___Week_{weekOfYear}"); if (!Directory.Exists(traceDummyDirectory)) _ = Directory.CreateDirectory(traceDummyDirectory); string traceDummyFile = Path.Combine(traceDummyDirectory, $"{dateTime.Ticks} - {_CellInstanceName}.txt"); File.AppendAllText(traceDummyFile, string.Empty); - if (_FileConnectorConfiguration.SourceFileLocation.EndsWith("\\")) - sourceFileLocation = _FileConnectorConfiguration.SourceFileLocation; - else - sourceFileLocation = string.Concat(_FileConnectorConfiguration.SourceFileLocation, '\\'); for (int i = 0; i < _FileConnectorConfiguration.SourceFileFilters.Count; i++) { _LastDummyRunIndex += 1; if (_LastDummyRunIndex >= _FileConnectorConfiguration.SourceFileFilters.Count) _LastDummyRunIndex = 0; sourceFileFilter = _FileConnectorConfiguration.SourceFileFilters[_LastDummyRunIndex]; - sourceArchiveFile = Path.GetFullPath(string.Concat(sourceFileLocation, sourceFileFilter)); + sourceArchiveFile = Path.Combine(_FileConnectorConfiguration.SourceFileLocation, sourceFileFilter); if (File.Exists(sourceArchiveFile)) { - checkSegment = _FileConnectorConfiguration.TargetFileLocation.Substring(sourceFileLocation.Length); - checkDirectory = Path.GetDirectoryName(sourceArchiveFile); - for (int z = 0; z < int.MaxValue; z++) - { - if (checkDirectory.Length < sourceFileLocation.Length || !checkDirectory.StartsWith(sourceFileLocation)) - break; - checkDirectory = Path.GetDirectoryName(checkDirectory); - if (Directory.Exists(Path.Combine(checkDirectory, checkSegment))) - { - checkDirectory = Path.Combine(checkDirectory, checkSegment); - break; - } - } - if (!checkDirectory.EndsWith(checkSegment)) - throw new Exception("Could not determine dummy target directory for extract!"); if (!long.TryParse(Path.GetFileNameWithoutExtension(sourceArchiveFile).Replace("x", string.Empty), out long sequence)) throw new Exception("Invalid file name for source archive file!"); - pathSegment = checkDirectory.Substring(sourceFileLocation.Length); - monARessource = GetCellName(pathSegment); + monARessource = GetCellName(sourceArchiveFile); if (string.IsNullOrEmpty(monARessource)) throw new Exception("Could not determine which cell archive file is associated with!"); if (_IsEAFHosted) - CallbackFileExists(sourceArchiveFile, traceDummyFile, checkDirectory, monARessource, sequence); + CallbackFileExists(sourceArchiveFile, traceDummyFile, _FileConnectorConfiguration.TargetFileLocation, monARessource, sequence); break; } } diff --git a/Adaptation/FileHandlers/jpeg/Description.cs b/Adaptation/FileHandlers/jpeg/Description.cs index ed2c57b..9b1046b 100644 --- a/Adaptation/FileHandlers/jpeg/Description.cs +++ b/Adaptation/FileHandlers/jpeg/Description.cs @@ -33,6 +33,7 @@ public class Description : IDescription, Shared.Properties.IDescription public int Red { get; set; } public int Green { get; set; } public int TotalDelta { get; set; } + public string ClosestMatchFileName { get; set; } string IDescription.GetEventDescription() => "File Has been read and parsed"; @@ -82,6 +83,7 @@ public class Description : IDescription, Shared.Properties.IDescription nameof(Red), nameof(Green), nameof(TotalDelta), + nameof(ClosestMatchFileName), }; return results; } @@ -169,11 +171,12 @@ public class Description : IDescription, Shared.Properties.IDescription Lot = processData.Text, PSN = string.Empty, Reactor = logistics.ProcessJobID, - Recipe = processData.Recipe, + Recipe = string.Empty, // Red = processData.Red, Green = processData.Green, TotalDelta = processData.TotalDelta, + ClosestMatchFileName = processData.ClosestMatchFileName, }; results.Add(description); } @@ -214,6 +217,7 @@ public class Description : IDescription, Shared.Properties.IDescription Red = -1, Green = -1, TotalDelta = -1, + ClosestMatchFileName = nameof(ClosestMatchFileName), }; return result; } diff --git a/Adaptation/FileHandlers/jpeg/FileRead.cs b/Adaptation/FileHandlers/jpeg/FileRead.cs index 5351d97..c73aee4 100644 --- a/Adaptation/FileHandlers/jpeg/FileRead.cs +++ b/Adaptation/FileHandlers/jpeg/FileRead.cs @@ -16,13 +16,12 @@ namespace Adaptation.FileHandlers.jpeg; public class FileRead : Shared.FileRead, IFileRead { - protected int _EndX; - protected int _EndY; - protected int _StartX; - protected int _StartY; - protected int[] _Bounds; protected long _LastChange; protected string _LastText; + protected readonly int _EndX; + protected readonly int _EndY; + protected readonly int _StartX; + protected readonly int _StartY; protected string _TessDataDirectory; protected List _PreviousTotalDeltaCollection; protected readonly Dictionary _Reactors; diff --git a/Adaptation/FileHandlers/jpeg/ProcessData.cs b/Adaptation/FileHandlers/jpeg/ProcessData.cs index 83f642d..6033395 100644 --- a/Adaptation/FileHandlers/jpeg/ProcessData.cs +++ b/Adaptation/FileHandlers/jpeg/ProcessData.cs @@ -25,7 +25,7 @@ public class ProcessData : IProcessData public int Green { get; set; } public string Text { get; set; } public int TotalDelta { get; set; } - public string Recipe { get; set; } + public string ClosestMatchFileName { get; set; } List Shared.Properties.IProcessData.Details => _Details; @@ -260,8 +260,8 @@ public class ProcessData : IProcessData totalDeltaCollection.Add(new(file, totalDelta)); } totalDeltaCollection = (from l in totalDeltaCollection orderby l.TotalDelta select l).ToList(); - Recipe = Path.GetFileNameWithoutExtension(totalDeltaCollection[0].File); - string[] closestMatchFileNameSplit = Recipe.Split('-'); + ClosestMatchFileName = Path.GetFileNameWithoutExtension(totalDeltaCollection[0].File); + string[] closestMatchFileNameSplit = ClosestMatchFileName.Split('-'); Text = closestMatchFileNameSplit.Last().TrimStart(); TotalDelta = totalDeltaCollection[0].TotalDelta; string textFileName = Get(fileRead, ".txt", $"{TotalDelta} - {Text}");