diff --git a/Adaptation/FileHandlers/Archive/FileRead.cs b/Adaptation/FileHandlers/Archive/FileRead.cs index 5a7643d..a502d10 100644 --- a/Adaptation/FileHandlers/Archive/FileRead.cs +++ b/Adaptation/FileHandlers/Archive/FileRead.cs @@ -100,8 +100,6 @@ public class FileRead : Shared.FileRead, IFileRead throw new Exception(); } - void IFileRead.Callback(object state) => throw new Exception(string.Concat("Not ", nameof(_IsDuplicator))); - private void MoveArchive(DateTime dateTime) { if (dateTime == DateTime.MinValue) diff --git a/Adaptation/FileHandlers/Dummy/FileRead.cs b/Adaptation/FileHandlers/Dummy/FileRead.cs index b33618f..13e1876 100644 --- a/Adaptation/FileHandlers/Dummy/FileRead.cs +++ b/Adaptation/FileHandlers/Dummy/FileRead.cs @@ -101,8 +101,6 @@ public class FileRead : Shared.FileRead, IFileRead throw new Exception(); } - void IFileRead.Callback(object state) => Callback(state); - private void CallbackInProcessCleared(string sourceArchiveFile, string traceDummyFile, string targetFileLocation, string monARessource, string inProcessDirectory, long sequence, bool warning) { const string site = "sjc"; diff --git a/Adaptation/FileHandlers/MET08DDUPSFS6420/FileRead.cs b/Adaptation/FileHandlers/MET08DDUPSFS6420/FileRead.cs index 9974d04..7adc4e9 100644 --- a/Adaptation/FileHandlers/MET08DDUPSFS6420/FileRead.cs +++ b/Adaptation/FileHandlers/MET08DDUPSFS6420/FileRead.cs @@ -21,9 +21,6 @@ namespace Adaptation.FileHandlers.MET08DDUPSFS6420; public class FileRead : Shared.FileRead, IFileRead { - private readonly Timer _Timer; - private int _LastDummyRunIndex; - private readonly bool _IsDummy; private readonly bool _IsNaEDA; private readonly bool _IsXToAPC; private readonly string _IqsFile; @@ -50,8 +47,6 @@ public class FileRead : Shared.FileRead, IFileRead throw new Exception(cellInstanceConnectionName); if (!_IsDuplicator) throw new Exception(cellInstanceConnectionName); - _LastDummyRunIndex = -1; - _IsDummy = _Hyphens == (int)Hyphen.IsDummy; _IsNaEDA = _Hyphens == (int)Hyphen.IsNaEDA; _IsXToAPC = _Hyphens == (int)Hyphen.IsXToAPC; _CellNames = new Dictionary(); @@ -68,21 +63,6 @@ public class FileRead : Shared.FileRead, IFileRead ModelObjectParameterDefinition[] cellInstanceCollection = GetProperties(cellInstanceConnectionName, modelObjectParameters, "CellInstance.", ".Path"); foreach (ModelObjectParameterDefinition modelObjectParameterDefinition in cellInstanceCollection) _CellNames.Add(modelObjectParameterDefinition.Name.Split('.')[1], modelObjectParameterDefinition.Value); - if (_IsDummy) - { - if (Debugger.IsAttached || fileConnectorConfiguration.PreProcessingMode == FileConnectorConfiguration.PreProcessingModeEnum.Process) - { - _Timer = new Timer(Callback, null, Timeout.Infinite, Timeout.Infinite); - Callback(null); - } - else - { - int milliSeconds; - milliSeconds = (int)(fileConnectorConfiguration.FileScanningIntervalInSeconds * 1000 / 2); - _Timer = new Timer(Callback, null, milliSeconds, Timeout.Infinite); - milliSeconds += 2000; - } - } } void IFileRead.Move(Tuple> extractResults, Exception exception) => Move(extractResults, exception); @@ -156,8 +136,6 @@ public class FileRead : Shared.FileRead, IFileRead throw new Exception(); } - void IFileRead.Callback(object state) => Callback(state); - protected static List GetDescriptions(JsonElement[] jsonElements) { List results = new(); @@ -324,196 +302,4 @@ public class FileRead : Shared.FileRead, IFileRead return results; } - private void CallbackIsDummy(string traceDummyFile, List> tuples, bool fileConnectorConfigurationIncludeSubDirectories, bool includeSubDirectoriesExtra) - { - int fileCount; - string[] files; - string monARessource; - string checkDirectory; - string sourceArchiveFile; - string inProcessDirectory; - const string site = "sjc"; - string stateName = string.Concat("Dummy_", _EventName); - const string monInURL = "http://moninhttp.sjc.infineon.com/input/text"; - MonIn monIn = MonIn.GetInstance(monInURL); - foreach (Tuple item in tuples) - { - monARessource = item.Item1; - sourceArchiveFile = item.Item2; - inProcessDirectory = item.Item3; - checkDirectory = item.Item4; - fileCount = item.Item5; - try - { - if (fileCount > 0 || string.IsNullOrEmpty(checkDirectory)) - { - File.AppendAllLines(traceDummyFile, new string[] { site, monARessource, stateName, State.Warning.ToString() }); - _ = monIn.SendStatus(site, monARessource, stateName, State.Warning); - for (int i = 1; i < 12; i++) - Thread.Sleep(500); - } - else if (inProcessDirectory == checkDirectory) - continue; - if (!_IsEAFHosted) - continue; - if (!File.Exists(sourceArchiveFile)) - continue; - if (!long.TryParse(Path.GetFileNameWithoutExtension(sourceArchiveFile).Replace("x", string.Empty), out long sequence)) - continue; - ZipFile.ExtractToDirectory(sourceArchiveFile, inProcessDirectory); - if (fileConnectorConfigurationIncludeSubDirectories && includeSubDirectoriesExtra) - checkDirectory = string.Concat(checkDirectory, @"\", sequence); - if (fileConnectorConfigurationIncludeSubDirectories) - files = Directory.GetFiles(inProcessDirectory, "*", SearchOption.AllDirectories); - else - files = Directory.GetFiles(inProcessDirectory, "*", SearchOption.TopDirectoryOnly); - if (files.Length > 250) - throw new Exception("Safety net!"); - foreach (string file in files) - File.SetLastWriteTime(file, new DateTime(sequence)); - if (!fileConnectorConfigurationIncludeSubDirectories) - { - foreach (string file in files) - File.Move(file, string.Concat(checkDirectory, @"\", Path.GetFileName(file))); - } - else - { - string[] directories = Directory.GetDirectories(inProcessDirectory, "*", SearchOption.AllDirectories); - foreach (string directory in directories) - _ = Directory.CreateDirectory(string.Concat(checkDirectory, directory.Substring(inProcessDirectory.Length))); - foreach (string file in files) - File.Move(file, string.Concat(checkDirectory, file.Substring(inProcessDirectory.Length))); - } - File.AppendAllLines(traceDummyFile, new string[] { site, monARessource, stateName, State.Ok.ToString() }); - _ = monIn.SendStatus(site, monARessource, stateName, State.Ok); - } - catch (Exception exception) - { - string subject = string.Concat("Exception:", _CellInstanceConnectionName); - string body = string.Concat(exception.Message, Environment.NewLine, Environment.NewLine, exception.StackTrace); - try - { _SMTP.SendHighPriorityEmailMessage(subject, body); } - catch (Exception) { } - File.AppendAllLines(traceDummyFile, new string[] { site, monARessource, stateName, State.Critical.ToString(), exception.Message, exception.StackTrace }); - _ = monIn.SendStatus(site, monARessource, stateName, State.Critical); - } - } - } - - private void Callback(object state) - { - if (!_IsDummy) - throw new Exception(); - try - { - DateTime dateTime = DateTime.Now; - bool check = dateTime.Hour > 7 && dateTime.Hour < 18 && dateTime.DayOfWeek != DayOfWeek.Sunday && dateTime.DayOfWeek != DayOfWeek.Saturday; - if (check) - { - int fileCount; - string[] files; - string monARessource; - string checkDirectory; - string sourceArchiveFile; - string sourceFileLocation; - string inProcessDirectory; - string weekOfYear = _Calendar.GetWeekOfYear(dateTime, CalendarWeekRule.FirstDay, DayOfWeek.Sunday).ToString("00"); - string traceDummyDirectory = string.Concat(Path.GetPathRoot(_TracePath), @"\TracesDummy\", _CellInstanceName, @"\Source\", dateTime.ToString("yyyy"), "___Week_", weekOfYear); - if (!Directory.Exists(traceDummyDirectory)) - _ = Directory.CreateDirectory(traceDummyDirectory); - string traceDummyFile = string.Concat(traceDummyDirectory, @"\", dateTime.Ticks, " - ", _CellInstanceName, ".txt"); - File.AppendAllText(traceDummyFile, string.Empty); - List> tuples = new(); - string progressDirectory = Path.GetFullPath(string.Concat(_FileConnectorConfiguration.SourceFileLocation, @"\_ Progress")); - if (progressDirectory != _ProgressPath || !Directory.Exists(progressDirectory)) - throw new Exception("Invalid progress path"); - foreach (KeyValuePair keyValuePair in _CellNames) - { - monARessource = keyValuePair.Key; - if (!keyValuePair.Value.Contains('\\')) - continue; - foreach (string sourceFileFilter in _FileConnectorConfiguration.SourceFileFilter.Split('|')) - { - if (sourceFileFilter.ToLower().StartsWith(keyValuePair.Value.Replace(@"\", string.Empty))) - sourceFileLocation = Path.GetFullPath(_FileConnectorConfiguration.SourceFileLocation); - else if (_FileConnectorConfiguration.SourceFileLocation.ToLower().EndsWith(keyValuePair.Value)) - sourceFileLocation = Path.GetFullPath(_FileConnectorConfiguration.SourceFileLocation); - else - sourceFileLocation = Path.GetFullPath(string.Concat(_FileConnectorConfiguration.SourceFileLocation, @"\", keyValuePair.Value)); - sourceArchiveFile = Path.GetFullPath(string.Concat(sourceFileLocation, @"\", sourceFileFilter)); - if (!File.Exists(sourceArchiveFile)) - continue; - if (!_DummyRuns.ContainsKey(monARessource)) - _DummyRuns.Add(monARessource, new List()); - tuples.Add(new Tuple(monARessource, sourceFileFilter, sourceFileLocation, sourceArchiveFile, 0)); - } - } - File.AppendAllLines(traceDummyFile, from l in tuples select l.Item4); - if (tuples.Any()) - { - _LastDummyRunIndex += 1; - if (_LastDummyRunIndex >= tuples.Count) - _LastDummyRunIndex = 0; - monARessource = tuples[_LastDummyRunIndex].Item1; - string sourceFileFilter = tuples[_LastDummyRunIndex].Item2; - sourceFileLocation = tuples[_LastDummyRunIndex].Item3; - sourceArchiveFile = tuples[_LastDummyRunIndex].Item4; - //fileCount = tuples[_LastDummyRunIndex].Item5; - tuples.Clear(); - if (long.TryParse(Path.GetFileNameWithoutExtension(sourceArchiveFile).Replace("x", string.Empty), out long sequence)) - { - if (!_DummyRuns[monARessource].Contains(sequence)) - _DummyRuns[monARessource].Add(sequence); - inProcessDirectory = string.Concat(progressDirectory, @"\Dummy_in process\", sequence); - checkDirectory = inProcessDirectory; - if (!Directory.Exists(checkDirectory)) - _ = Directory.CreateDirectory(checkDirectory); - files = Directory.GetFiles(checkDirectory, "*", SearchOption.AllDirectories); - fileCount = files.Length; - if (files.Any()) - { - if (files.Length > 250) - throw new Exception("Safety net!"); - try - { - foreach (string file in files) - File.Delete(file); - } - catch (Exception) { } - } - tuples.Add(new Tuple(monARessource, sourceArchiveFile, inProcessDirectory, checkDirectory, fileCount)); - checkDirectory = sourceFileLocation; - files = Directory.GetFiles(checkDirectory, string.Concat("*", sequence, "*"), SearchOption.TopDirectoryOnly); - fileCount = files.Length; - tuples.Add(new Tuple(monARessource, sourceArchiveFile, inProcessDirectory, checkDirectory, fileCount)); - } - } - if (tuples.Any()) - //CallbackIsDummy(traceDummyFile, tuples, FileConnectorConfiguration.IncludeSubDirectories.Value, includeSubDirectoriesExtra: false); - CallbackIsDummy(traceDummyFile, tuples, fileConnectorConfigurationIncludeSubDirectories: true, includeSubDirectoriesExtra: true); - } - } - catch (Exception exception) - { - string subject = string.Concat("Exception:", _CellInstanceConnectionName); - string body = string.Concat(exception.Message, Environment.NewLine, Environment.NewLine, exception.StackTrace); - try - { _SMTP.SendHighPriorityEmailMessage(subject, body); } - catch (Exception) { } - } - try - { - TimeSpan timeSpan = new(DateTime.Now.AddSeconds(_FileConnectorConfiguration.FileScanningIntervalInSeconds.Value).Ticks - DateTime.Now.Ticks); - _ = _Timer.Change((long)timeSpan.TotalMilliseconds, Timeout.Infinite); - } - catch (Exception exception) - { - string subject = string.Concat("Exception:", _CellInstanceConnectionName); - string body = string.Concat(exception.Message, Environment.NewLine, Environment.NewLine, exception.StackTrace); - try - { _SMTP.SendHighPriorityEmailMessage(subject, body); } - catch (Exception) { } - } - } - } \ No newline at end of file diff --git a/Adaptation/FileHandlers/ManualOIEntry/FileRead.cs b/Adaptation/FileHandlers/ManualOIEntry/FileRead.cs index 3790120..7b8c9a7 100644 --- a/Adaptation/FileHandlers/ManualOIEntry/FileRead.cs +++ b/Adaptation/FileHandlers/ManualOIEntry/FileRead.cs @@ -110,8 +110,6 @@ public class FileRead : Shared.FileRead, IFileRead throw new Exception(); } - void IFileRead.Callback(object state) => throw new Exception(string.Concat("Not ", nameof(_IsDuplicator))); - private Tuple> GetExtractResult(string reportFullPath, DateTime dateTime) { if (dateTime == DateTime.MinValue) diff --git a/Adaptation/FileHandlers/ToArchive/FileRead.cs b/Adaptation/FileHandlers/ToArchive/FileRead.cs index 236f390..0a20e26 100644 --- a/Adaptation/FileHandlers/ToArchive/FileRead.cs +++ b/Adaptation/FileHandlers/ToArchive/FileRead.cs @@ -109,31 +109,14 @@ public class FileRead : Shared.FileRead, IFileRead throw new Exception(); } - void IFileRead.Callback(object state) => throw new Exception(string.Concat("Not ", nameof(_IsDuplicator))); - private Tuple> GetExtractResult(string reportFullPath, DateTime dateTime) { if (dateTime == DateTime.MinValue) { } - Tuple> results = new(string.Empty, null, null, new List()); - _Logistics = new Logistics(this, reportFullPath, useSplitForMID: true); + Tuple> results = new(string.Empty, null, null, new List()); + Tuple pdsf = ProcessDataStandardFormat.GetLogisticsColumnsAndBody(reportFullPath); + _Logistics = new Logistics(reportFullPath, pdsf.Item1); SetFileParameterLotIDToLogisticsMID(); - - string[] segments = Path.GetFileNameWithoutExtension(reportFullPath).Split('_'); - string duplicateDirectory = string.Concat(_FileConnectorConfiguration.TargetFileLocation, @"\", segments[0]); - if (segments.Length > 2) - duplicateDirectory = string.Concat(duplicateDirectory, @"-", segments[2]); - if (!Directory.Exists(duplicateDirectory)) - _ = Directory.CreateDirectory(duplicateDirectory); - - string logisticsSequence = _Logistics.Sequence.ToString(); - bool isDummyRun = _DummyRuns.Any() && _DummyRuns.ContainsKey(_Logistics.JobID) && _DummyRuns[_Logistics.JobID].Any() && (from l in _DummyRuns[_Logistics.JobID] where l == _Logistics.Sequence select 1).Any(); - - List> tuples = new(); - - string destinationDirectory = WriteScopeInfo(_ProgressPath, _Logistics, dateTime, duplicateDirectory, tuples); - if (isDummyRun) - Shared0607(reportFullPath, duplicateDirectory, logisticsSequence, destinationDirectory); return results; } diff --git a/Adaptation/FileHandlers/pcl/FileRead.cs b/Adaptation/FileHandlers/pcl/FileRead.cs index 60ce4a6..6f44af1 100644 --- a/Adaptation/FileHandlers/pcl/FileRead.cs +++ b/Adaptation/FileHandlers/pcl/FileRead.cs @@ -101,8 +101,6 @@ public class FileRead : Shared.FileRead, IFileRead void IFileRead.CheckTests(Test[] tests, bool extra) => throw new Exception(string.Concat("Not ", nameof(_IsDuplicator))); - void IFileRead.Callback(object state) => throw new Exception(string.Concat("Not ", nameof(_IsDuplicator))); - private Tuple> GetExtractResult(string reportFullPath, DateTime dateTime) { Tuple> results = new(string.Empty, null, null, new List()); diff --git a/Adaptation/Shared/Methods/IFileRead.cs b/Adaptation/Shared/Methods/IFileRead.cs index 13c2379..4d383c3 100644 --- a/Adaptation/Shared/Methods/IFileRead.cs +++ b/Adaptation/Shared/Methods/IFileRead.cs @@ -10,7 +10,6 @@ public interface IFileRead : Properties.IFileRead void WaitForThread(); JsonProperty[] GetDefault(); - void Callback(object state); string GetEventDescription(); List GetHeaderNames(); void CheckTests(Test[] tests, bool extra);