From 2b21f307973221849dfa65beb59a2b8bc2a70192 Mon Sep 17 00:00:00 2001 From: Mike Phares Date: Mon, 13 Jan 2025 12:30:42 -0700 Subject: [PATCH] Removed CDE2 and CDE2 --- .../CellInstanceConnectionName.cs | 1 - .../FileHandlers/OpenInsight/FileRead.cs | 10 +- .../FileHandlers/OpenInsight/FromIQS.cs | 10 +- .../OpenInsightMetrologyViewer/FileRead.cs | 4 +- .../OpenInsightMetrologyViewer/WSRequest.cs | 18 +- .../FileRead.cs | 4 +- Adaptation/FileHandlers/Processed/FileRead.cs | 4 +- Adaptation/FileHandlers/txt/Description.cs | 317 ---------- Adaptation/FileHandlers/txt/Descriptor.cs | 27 - Adaptation/FileHandlers/txt/Detail.cs | 16 - Adaptation/FileHandlers/txt/FileRead.cs | 131 ---- Adaptation/FileHandlers/txt/ProcessData.cs | 593 ------------------ Adaptation/_Tests/Static/RsM.cs | 2 - Adaptation/_Tests/Static/txt.cs | 244 ------- MET08RESIMAPCDE.csproj | 5 - 15 files changed, 25 insertions(+), 1361 deletions(-) delete mode 100644 Adaptation/FileHandlers/txt/Description.cs delete mode 100644 Adaptation/FileHandlers/txt/Descriptor.cs delete mode 100644 Adaptation/FileHandlers/txt/Detail.cs delete mode 100644 Adaptation/FileHandlers/txt/FileRead.cs delete mode 100644 Adaptation/FileHandlers/txt/ProcessData.cs delete mode 100644 Adaptation/_Tests/Static/txt.cs diff --git a/Adaptation/FileHandlers/CellInstanceConnectionName.cs b/Adaptation/FileHandlers/CellInstanceConnectionName.cs index aae2bdb..a3d3b55 100644 --- a/Adaptation/FileHandlers/CellInstanceConnectionName.cs +++ b/Adaptation/FileHandlers/CellInstanceConnectionName.cs @@ -22,7 +22,6 @@ public class CellInstanceConnectionName nameof(OpenInsight) => new OpenInsight.FileRead(smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null), nameof(OpenInsightMetrologyViewer) => new OpenInsightMetrologyViewer.FileRead(smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null), nameof(OpenInsightMetrologyViewerAttachments) => new OpenInsightMetrologyViewerAttachments.FileRead(smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null), - nameof(txt) => new txt.FileRead(smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null), nameof(Processed) => new Processed.FileRead(smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null), nameof(RsM) => new RsM.FileRead(smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null), nameof(SPaCe) => new SPaCe.FileRead(smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null), diff --git a/Adaptation/FileHandlers/OpenInsight/FileRead.cs b/Adaptation/FileHandlers/OpenInsight/FileRead.cs index 4326fde..218f99b 100644 --- a/Adaptation/FileHandlers/OpenInsight/FileRead.cs +++ b/Adaptation/FileHandlers/OpenInsight/FileRead.cs @@ -113,11 +113,11 @@ public class FileRead : Shared.FileRead, IFileRead return results; } - internal static string GetLines(Logistics logistics, List descriptions) + internal static string GetLines(Logistics logistics, List descriptions) { StringBuilder results = new(); char del = '\t'; - txt.Description x = descriptions[0]; + RsM.Description x = descriptions[0]; _ = results.Append(x.UniqueId).Append(del). Append(x.Run).Append(del). Append(x.Date).Append(del). @@ -140,7 +140,7 @@ public class FileRead : Shared.FileRead, IFileRead Append(x.Avg).Append(del). Append(x.StdDev).Append(del). Append(x.SemiRadial); - foreach (txt.Description description in descriptions) + foreach (RsM.Description description in descriptions) _ = results.Append(del).Append(description.Pt). Append(del).Append(description.R). Append(del).Append(description.T). @@ -149,7 +149,7 @@ public class FileRead : Shared.FileRead, IFileRead return results.ToString(); } - private void SaveOpenInsightFile(string reportFullPath, DateTime dateTime, string logistics, List descriptions, Test[] tests) + private void SaveOpenInsightFile(string reportFullPath, DateTime dateTime, string logistics, List descriptions, Test[] tests) { bool isDummyRun = false; List<(Shared.Properties.IScopeInfo, string)> collection = new(); @@ -204,7 +204,7 @@ public class FileRead : Shared.FileRead, IFileRead _Logistics = new Logistics(reportFullPath, pdsf.Item1); SetFileParameterLotIDToLogisticsMID(); JsonElement[] jsonElements = ProcessDataStandardFormat.GetArray(pdsf); - List descriptions = txt.ProcessData.GetDescriptions(jsonElements); + List descriptions = RsM.ProcessData.GetDescriptions(jsonElements); Test[] tests = (from l in descriptions select (Test)l.Test).ToArray(); if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0) SaveOpenInsightFile(reportFullPath, dateTime, pdsf.Item1, descriptions, tests); diff --git a/Adaptation/FileHandlers/OpenInsight/FromIQS.cs b/Adaptation/FileHandlers/OpenInsight/FromIQS.cs index 69fec60..59dcefa 100644 --- a/Adaptation/FileHandlers/OpenInsight/FromIQS.cs +++ b/Adaptation/FileHandlers/OpenInsight/FromIQS.cs @@ -128,7 +128,7 @@ public class FromIQS return string.Join(Environment.NewLine, results); } // cSpell:restore - private static string GetCommandText(Logistics logistics, txt.Description description, string dateTime, long? subGroupId) + private static string GetCommandText(Logistics logistics, RsM.Description description, string dateTime, long? subGroupId) { // cSpell:disable List results = new(); results.Add(" select iq.ev_count, iq.cl_count, iq.sl_count, iq.se_sgrp, iq.se_sgtm, iq.se_tsno, iq.td_test, iq.pr_name, iq.jd_name, iq.pl_name, iq.pd_name, iq.td_name, iq.se_val "); @@ -251,14 +251,14 @@ public class FromIQS } } - internal static (long?, int?, string) GetCommandText(string connectionString, Logistics logistics, txt.Description description, long breakAfter, long preWait) + internal static (long?, int?, string) GetCommandText(string connectionString, Logistics logistics, RsM.Description description, long breakAfter, long preWait) { DateTime dateTime; int? count = null; string commandText; long? result = null; StringBuilder stringBuilder; - string dateFormat = txt.Description.GetDateFormat(); + string dateFormat = RsM.Description.GetDateFormat(); if (DateTime.TryParseExact(description.Date, dateFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime dateTimeParsed)) dateTime = dateTimeParsed; else if (DateTime.TryParse(description.Date, CultureInfo.InvariantCulture, DateTimeStyles.None, out dateTimeParsed)) @@ -325,7 +325,7 @@ public class FromIQS return new(result, count, commandText); } - private static string GetJson(Logistics logistics, string logisticLines, txt.Description description) + private static string GetJson(Logistics logistics, string logisticLines, RsM.Description description) { string result; StringBuilder stringBuilder = new(); @@ -376,7 +376,7 @@ public class FromIQS return result; } - internal static void Save(string openInsightApiECDirectory, Logistics logistics, string reportFullPath, string logisticLines, txt.Description description, string lines, long? subGroupId, string weekOfYear) + internal static void Save(string openInsightApiECDirectory, Logistics logistics, string reportFullPath, string logisticLines, RsM.Description description, string lines, long? subGroupId, string weekOfYear) { string checkFile; string fileName = Path.GetFileName(reportFullPath); diff --git a/Adaptation/FileHandlers/OpenInsightMetrologyViewer/FileRead.cs b/Adaptation/FileHandlers/OpenInsightMetrologyViewer/FileRead.cs index efbfdde..9f4ee73 100644 --- a/Adaptation/FileHandlers/OpenInsightMetrologyViewer/FileRead.cs +++ b/Adaptation/FileHandlers/OpenInsightMetrologyViewer/FileRead.cs @@ -110,7 +110,7 @@ public class FileRead : Shared.FileRead, IFileRead return results; } - private void SendData(string reportFullPath, DateTime dateTime, List descriptions) + private void SendData(string reportFullPath, DateTime dateTime, List descriptions) { string checkDirectory; WSRequest wsRequest = new(this, _Logistics, descriptions); @@ -143,7 +143,7 @@ public class FileRead : Shared.FileRead, IFileRead _Logistics = new Logistics(reportFullPath, pdsf.Item1); SetFileParameterLotIDToLogisticsMID(); JsonElement[] jsonElements = ProcessDataStandardFormat.GetArray(pdsf); - List descriptions = txt.ProcessData.GetDescriptions(jsonElements); + List descriptions = RsM.ProcessData.GetDescriptions(jsonElements); Test[] tests = (from l in descriptions select (Test)l.Test).ToArray(); if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0) SendData(reportFullPath, dateTime, descriptions); diff --git a/Adaptation/FileHandlers/OpenInsightMetrologyViewer/WSRequest.cs b/Adaptation/FileHandlers/OpenInsightMetrologyViewer/WSRequest.cs index 81e2518..569f0d9 100644 --- a/Adaptation/FileHandlers/OpenInsightMetrologyViewer/WSRequest.cs +++ b/Adaptation/FileHandlers/OpenInsightMetrologyViewer/WSRequest.cs @@ -41,18 +41,18 @@ public class WSRequest public string Temp { get; set; } public string UniqueId { get; set; } public string Zone { get; set; } - public List Details { get; protected set; } + public List Details { get; protected set; } [Obsolete("For json")] public WSRequest() { } #pragma warning disable IDE0060 - internal WSRequest(IFileRead fileRead, Logistics logistics, List descriptions, string processDataStandardFormat = null) + internal WSRequest(IFileRead fileRead, Logistics logistics, List descriptions, string processDataStandardFormat = null) #pragma warning restore IDE0060 { Id = -1; CellName = logistics.MesEntity; - Details = new List(); - if (descriptions[0] is not txt.Description x) + Details = new List(); + if (descriptions[0] is not RsM.Description x) throw new Exception(); //Header { @@ -80,10 +80,10 @@ public class WSRequest UniqueId = x.UniqueId; Zone = x.Zone; } - txt.Detail detail; - foreach (txt.Description description in descriptions) + RsM.Detail detail; + foreach (RsM.Description description in descriptions) { - detail = new txt.Detail + detail = new RsM.Detail { HeaderUniqueId = description.HeaderUniqueId, Merit = description.Merit, @@ -102,7 +102,7 @@ public class WSRequest FilePath = onlyWSRequest; } - internal static long GetHeaderId(IFileRead fileRead, Logistics logistics, string openInsightMetrologyViewerAPI, string openInsightMetrologyViewerFileShare, int weekOfYear, string json, List descriptions) + internal static long GetHeaderId(IFileRead fileRead, Logistics logistics, string openInsightMetrologyViewerAPI, string openInsightMetrologyViewerFileShare, int weekOfYear, string json, List descriptions) { long result; if (string.IsNullOrEmpty(json)) @@ -119,7 +119,7 @@ public class WSRequest } #pragma warning disable IDE0060 - internal static void PostOpenInsightMetrologyViewerAttachments(IFileRead fileRead, Logistics logistics, string openInsightMetrologyViewerAPI, List descriptions, string matchDirectory, string subGroupId, long headerId, string headerIdDirectory) + internal static void PostOpenInsightMetrologyViewerAttachments(IFileRead fileRead, Logistics logistics, string openInsightMetrologyViewerAPI, List descriptions, string matchDirectory, string subGroupId, long headerId, string headerIdDirectory) #pragma warning restore IDE0060 { string[] txtFiles = Directory.GetFiles(matchDirectory, "*.txt", SearchOption.TopDirectoryOnly); diff --git a/Adaptation/FileHandlers/OpenInsightMetrologyViewerAttachments/FileRead.cs b/Adaptation/FileHandlers/OpenInsightMetrologyViewerAttachments/FileRead.cs index 7829c22..fa1d2ba 100644 --- a/Adaptation/FileHandlers/OpenInsightMetrologyViewerAttachments/FileRead.cs +++ b/Adaptation/FileHandlers/OpenInsightMetrologyViewerAttachments/FileRead.cs @@ -135,7 +135,7 @@ public class FileRead : Shared.FileRead, IFileRead return result; } - private void PostOpenInsightMetrologyViewerAttachments(List descriptions) + private void PostOpenInsightMetrologyViewerAttachments(List descriptions) { string? json; string? subGroupId; @@ -172,7 +172,7 @@ public class FileRead : Shared.FileRead, IFileRead _Logistics = new Logistics(reportFullPath, pdsf.Item1); SetFileParameterLotIDToLogisticsMID(); JsonElement[] jsonElements = ProcessDataStandardFormat.GetArray(pdsf); - List descriptions = txt.ProcessData.GetDescriptions(jsonElements); + List descriptions = RsM.ProcessData.GetDescriptions(jsonElements); Test[] tests = (from l in descriptions select (Test)l.Test).ToArray(); if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0) PostOpenInsightMetrologyViewerAttachments(descriptions); diff --git a/Adaptation/FileHandlers/Processed/FileRead.cs b/Adaptation/FileHandlers/Processed/FileRead.cs index 39f6f73..8cf0da2 100644 --- a/Adaptation/FileHandlers/Processed/FileRead.cs +++ b/Adaptation/FileHandlers/Processed/FileRead.cs @@ -108,7 +108,7 @@ public class FileRead : Shared.FileRead, IFileRead return results; } - private void DirectoryMove(string reportFullPath, DateTime dateTime, List descriptions) + private void DirectoryMove(string reportFullPath, DateTime dateTime, List descriptions) { if (dateTime == DateTime.MinValue) throw new ArgumentNullException(nameof(dateTime)); @@ -143,7 +143,7 @@ public class FileRead : Shared.FileRead, IFileRead _Logistics = new Logistics(reportFullPath, pdsf.Item1); SetFileParameterLotIDToLogisticsMID(); JsonElement[] jsonElements = ProcessDataStandardFormat.GetArray(pdsf); - List descriptions = txt.ProcessData.GetDescriptions(jsonElements); + List descriptions = RsM.ProcessData.GetDescriptions(jsonElements); Test[] tests = (from l in descriptions select (Test)l.Test).ToArray(); results = new Tuple>(pdsf.Item1, tests, jsonElements, new List()); if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0) diff --git a/Adaptation/FileHandlers/txt/Description.cs b/Adaptation/FileHandlers/txt/Description.cs deleted file mode 100644 index 64ff304..0000000 --- a/Adaptation/FileHandlers/txt/Description.cs +++ /dev/null @@ -1,317 +0,0 @@ -using Adaptation.Shared; -using Adaptation.Shared.Methods; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text.Json; - -namespace Adaptation.FileHandlers.txt; - -public class Description : IDescription, Shared.Properties.IDescription -{ - - public int Test { get; set; } - public int Count { get; set; } - public int Index { get; set; } - // - public string EventName { get; set; } - public string NullData { get; set; } - public string JobID { get; set; } - public string Sequence { get; set; } - public string MesEntity { get; set; } - public string ReportFullPath { get; set; } - public string ProcessJobID { get; set; } - public string MID { get; set; } - // - public string Date { get; set; } - public string Employee { get; set; } - public string Lot { get; set; } - public string PSN { get; set; } - public string Reactor { get; set; } - public string Recipe { get; set; } - // - public string AutoOptimizeGain { get; set; } - public string AutoProbeHeightSet { get; set; } - public string Avg { get; set; } - public string DataReject { get; set; } - public string DLRatio { get; set; } - public string Merit { get; set; } - public string Pt { get; set; } - public string R { get; set; } - public string ResistivitySpec { get; set; } - public string Rs { get; set; } - public string SemiRadial { get; set; } - public string StdDev { get; set; } - public string T { get; set; } - public string Temp { get; set; } - // - public string Engineer { get; set; } - public string EquipId { get; set; } - public string FileName { get; set; } - public string HeaderUniqueId { get; set; } - public string Id { get; set; } - public string Layer { get; set; } - public string RDS { get; set; } - public string Run { get; set; } - public string UniqueId { get; set; } - public string Zone { get; set; } - // - public string SheetRhoVariation { get; set; } - - string IDescription.GetEventDescription() => "File Has been read and parsed"; - - List IDescription.GetNames(IFileRead fileRead, Logistics logistics) - { - List results = new(); - IDescription description = GetDefault(fileRead, logistics); - string json = JsonSerializer.Serialize(description, description.GetType()); - object @object = JsonSerializer.Deserialize(json); - if (@object is not JsonElement jsonElement) - throw new Exception(); - foreach (JsonProperty jsonProperty in jsonElement.EnumerateObject()) - results.Add(jsonProperty.Name); - return results; - } - - List IDescription.GetDetailNames() - { - List results = new() - { - nameof(AutoOptimizeGain), - nameof(AutoProbeHeightSet), - nameof(Avg), - nameof(DataReject), - nameof(DLRatio), - nameof(Merit), - nameof(Pt), - nameof(R), - nameof(ResistivitySpec), - nameof(Rs), - nameof(SemiRadial), - nameof(StdDev), - nameof(T), - nameof(Temp) - }; - return results; - } - - List IDescription.GetHeaderNames() - { - List results = new() - { - nameof(Date), - nameof(Employee), - nameof(Lot), - nameof(PSN), - nameof(Reactor), - nameof(Recipe) - }; - return results; - } - - IDescription IDescription.GetDisplayNames() - { - Description result = GetDisplayNames(); - return result; - } - - List IDescription.GetParameterNames() - { - List results = new() - { - nameof(Engineer), - nameof(EquipId), - nameof(FileName), - nameof(HeaderUniqueId), - nameof(Id), - nameof(Layer), - nameof(RDS), - nameof(Run), - nameof(UniqueId), - nameof(Zone), - nameof(SheetRhoVariation), - }; - return results; - } - - JsonProperty[] IDescription.GetDefault(IFileRead fileRead, Logistics logistics) - { - JsonProperty[] results; - IDescription description = GetDefault(fileRead, logistics); - string json = JsonSerializer.Serialize(description, description.GetType()); - object @object = JsonSerializer.Deserialize(json); - results = ((JsonElement)@object).EnumerateObject().ToArray(); - return results; - } - - List IDescription.GetPairedParameterNames() - { - List results = new(); - return results; - } - - List IDescription.GetIgnoreParameterNames(Test test) - { - List results = new(); - return results; - } - - IDescription IDescription.GetDefaultDescription(IFileRead fileRead, Logistics logistics) - { - Description result = GetDefault(fileRead, logistics); - return result; - } - - Dictionary IDescription.GetDisplayNamesJsonElement(IFileRead fileRead) - { - Dictionary results = new(); - IDescription description = GetDisplayNames(); - string json = JsonSerializer.Serialize(description, description.GetType()); - JsonElement jsonElement = JsonSerializer.Deserialize(json); - foreach (JsonProperty jsonProperty in jsonElement.EnumerateObject()) - { - if (!results.ContainsKey(jsonProperty.Name)) - results.Add(jsonProperty.Name, string.Empty); - if (jsonProperty.Value is JsonElement jsonPropertyValue) - results[jsonProperty.Name] = jsonPropertyValue.ToString(); - } - return results; - } - - List IDescription.GetDescriptions(IFileRead fileRead, Logistics logistics, List tests, IProcessData iProcessData) - { - List results = new(); - if (iProcessData is null || iProcessData.Details.Count == 0 || iProcessData is not ProcessData processData) - results.Add(GetDefault(fileRead, logistics)); - else - { - string nullData; - Description description; - object configDataNullData = fileRead.NullData; - if (configDataNullData is null) - nullData = string.Empty; - else - nullData = configDataNullData.ToString(); - for (int i = 0; i < iProcessData.Details.Count; i++) - { - if (iProcessData.Details[i] is not Detail detail) - continue; - description = new Description - { - Test = (int)tests[i], - Count = tests.Count, - Index = i, - // - EventName = fileRead.EventName, - NullData = nullData, - JobID = fileRead.CellInstanceName, - Sequence = logistics.Sequence.ToString(), - MesEntity = logistics.MesEntity, - ReportFullPath = logistics.ReportFullPath, - ProcessJobID = logistics.ProcessJobID, - MID = logistics.MID, - // - Date = processData.Date.ToString(GetDateFormat()), - Employee = processData.Employee, - Lot = processData.Lot, - PSN = processData.PSN, - Reactor = processData.Reactor, - Recipe = processData.Recipe, - // - AutoOptimizeGain = processData.AutoOptimizeGain, - AutoProbeHeightSet = processData.AutoProbeHeightSet, - Avg = processData.Avg, - DataReject = processData.DataReject, - DLRatio = processData.DLRatio, - Merit = detail.Merit, - Pt = detail.Pt, - R = detail.R, - ResistivitySpec = processData.ResistivitySpec, - Rs = detail.Rs, - SemiRadial = processData.SemiRadial, - StdDev = processData.StdDev, - T = detail.T, - Temp = processData.Temp, - // - Engineer = processData.Engineer, - EquipId = processData.EquipId, - FileName = processData.FileName, - HeaderUniqueId = detail.HeaderUniqueId, - Id = processData.UniqueId, - Layer = processData.Layer, - RDS = processData.RDS, - Run = processData.Run, - UniqueId = detail.UniqueId, - Zone = processData.Zone, - // - SheetRhoVariation = string.Empty, - }; - results.Add(description); - } - } - return results; - } - - private static Description GetDisplayNames() - { - Description result = new(); - return result; - } - - private Description GetDefault(IFileRead fileRead, Logistics logistics) - { - Description result = new() - { - Test = -1, - Count = 0, - Index = -1, - // - EventName = fileRead.EventName, - NullData = fileRead.NullData, - JobID = fileRead.CellInstanceName, - Sequence = logistics.Sequence.ToString(), - MesEntity = fileRead.MesEntity, - ReportFullPath = logistics.ReportFullPath, - ProcessJobID = logistics.ProcessJobID, - MID = logistics.MID, - // - Date = nameof(Date), - Employee = nameof(Employee), - Lot = nameof(Lot), - PSN = nameof(PSN), - Reactor = nameof(Reactor), - Recipe = nameof(Recipe), - // - AutoOptimizeGain = nameof(AutoOptimizeGain), - AutoProbeHeightSet = nameof(AutoProbeHeightSet), - Avg = nameof(Avg), - DataReject = nameof(DataReject), - DLRatio = nameof(DLRatio), - Merit = nameof(Merit), - Pt = nameof(Pt), - R = nameof(R), - ResistivitySpec = nameof(ResistivitySpec), - Rs = nameof(Rs), - SemiRadial = nameof(SemiRadial), - StdDev = nameof(StdDev), - T = nameof(T), - Temp = nameof(Temp), - // - Engineer = nameof(Engineer), - EquipId = nameof(EquipId), - FileName = nameof(FileName), - HeaderUniqueId = nameof(HeaderUniqueId), - Id = nameof(Id), - Layer = nameof(Layer), - RDS = nameof(RDS), - Run = nameof(Run), - UniqueId = nameof(UniqueId), - Zone = nameof(Zone), - SheetRhoVariation = nameof(SheetRhoVariation), - }; - return result; - } - - internal static string GetDateFormat() => "MM/dd/yyyy hh:mm:ss tt"; - -} \ No newline at end of file diff --git a/Adaptation/FileHandlers/txt/Descriptor.cs b/Adaptation/FileHandlers/txt/Descriptor.cs deleted file mode 100644 index 456e294..0000000 --- a/Adaptation/FileHandlers/txt/Descriptor.cs +++ /dev/null @@ -1,27 +0,0 @@ -namespace Adaptation.FileHandlers.txt; - -public class Descriptor -{ - - public string Employee { get; private set; } - public string Layer { get; private set; } - public string PSN { get; private set; } - public string RDS { get; private set; } - public string Reactor { get; private set; } - public string Run { get; private set; } - public string Title { get; private set; } - public string Zone { get; private set; } - - public Descriptor(string employee, string layer, string psn, string rds, string reactor, string run, string title, string zone) - { - Employee = employee; - Layer = layer; - PSN = psn; - RDS = rds; - Reactor = reactor; - Run = run; - Title = title; - Zone = zone; - } - -} \ No newline at end of file diff --git a/Adaptation/FileHandlers/txt/Detail.cs b/Adaptation/FileHandlers/txt/Detail.cs deleted file mode 100644 index 2eddb6f..0000000 --- a/Adaptation/FileHandlers/txt/Detail.cs +++ /dev/null @@ -1,16 +0,0 @@ -namespace Adaptation.FileHandlers.txt; - -public class Detail -{ - - public string HeaderUniqueId { get; set; } - public string Merit { get; set; } - public string Pt { get; set; } - public string R { get; set; } - public string Rs { get; set; } - public string T { get; set; } - public string UniqueId { get; set; } - - public override string ToString() => string.Concat(Merit, ";", Pt, ";", R, ";", Rs, ";", T); - -} \ No newline at end of file diff --git a/Adaptation/FileHandlers/txt/FileRead.cs b/Adaptation/FileHandlers/txt/FileRead.cs deleted file mode 100644 index eae0d99..0000000 --- a/Adaptation/FileHandlers/txt/FileRead.cs +++ /dev/null @@ -1,131 +0,0 @@ -using Adaptation.Eaf.Management.ConfigurationData.CellAutomation; -using Adaptation.Ifx.Eaf.EquipmentConnector.File.Configuration; -using Adaptation.Shared; -using Adaptation.Shared.Methods; -using System; -using System.Collections.Generic; -using System.IO; -using System.Text.Json; -using System.Text.RegularExpressions; - -namespace Adaptation.FileHandlers.txt; - -public class FileRead : Shared.FileRead, IFileRead -{ - - private long? _TickOffset; - - public FileRead(ISMTP smtp, Dictionary fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList modelObjectParameters, string equipmentDictionaryName, Dictionary> dummyRuns, Dictionary> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) : - base(new Description(), true, smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null) - { - _MinFileLength = 15; - _NullData = string.Empty; - _Logistics = new(this); - if (_FileParameter is null) - throw new Exception(cellInstanceConnectionName); - if (_ModelObjectParameterDefinitions is null) - throw new Exception(cellInstanceConnectionName); - if (_IsDuplicator) - throw new Exception(cellInstanceConnectionName); - if (_IsEAFHosted) - NestExistingFiles(_FileConnectorConfiguration); - } - - void IFileRead.Move(Tuple> extractResults, Exception exception) => Move(extractResults); - - void IFileRead.WaitForThread() => WaitForThread(thread: null, threadExceptions: null); - - string IFileRead.GetEventDescription() - { - string result = _Description.GetEventDescription(); - return result; - } - - List IFileRead.GetHeaderNames() - { - List results = _Description.GetHeaderNames(); - return results; - } - - string[] IFileRead.Move(Tuple> extractResults, string to, string from, string resolvedFileLocation, Exception exception) - { - string[] results = Move(extractResults, to, from, resolvedFileLocation, exception); - return results; - } - - JsonProperty[] IFileRead.GetDefault() - { - JsonProperty[] results = _Description.GetDefault(this, _Logistics); - return results; - } - - Dictionary IFileRead.GetDisplayNamesJsonElement() - { - Dictionary results = _Description.GetDisplayNamesJsonElement(this); - return results; - } - - List IFileRead.GetDescriptions(IFileRead fileRead, List tests, IProcessData processData) - { - List results = _Description.GetDescriptions(fileRead, _Logistics, tests, processData); - return results; - } - - Tuple> IFileRead.GetExtractResult(string reportFullPath, string eventName) - { - Tuple> results; - if (string.IsNullOrEmpty(eventName)) - throw new Exception(); - _ReportFullPath = reportFullPath; - DateTime dateTime = DateTime.Now; - results = GetExtractResult(reportFullPath, dateTime); - if (results.Item3 is null) - results = new Tuple>(results.Item1, Array.Empty(), JsonSerializer.Deserialize("[]"), results.Item4); - if (results.Item3.Length > 0 && _IsEAFHosted) - WritePDSF(this, results.Item3); - UpdateLastTicksDuration(DateTime.Now.Ticks - dateTime.Ticks); - return results; - } - - Tuple> IFileRead.ReExtract() - { - Tuple> results; - List headerNames = _Description.GetHeaderNames(); - Dictionary keyValuePairs = _Description.GetDisplayNamesJsonElement(this); - results = ReExtract(this, headerNames, keyValuePairs); - return results; - } - - private Tuple> GetExtractResult(string reportFullPath, DateTime dateTime) - { - Tuple> results = new(string.Empty, null, null, new List()); - _TickOffset ??= 0; // new FileInfo(reportFullPath).LastWriteTime.Ticks - dateTime.Ticks; - _Logistics = new Logistics(this, _TickOffset.Value, reportFullPath, useSplitForMID: true); - SetFileParameterLotIDToLogisticsMID(); - if (_Logistics.FileInfo.Length < _MinFileLength) - results.Item4.Add(_Logistics.FileInfo); - else - { - IProcessData iProcessData = new ProcessData(this, _Logistics, results.Item4); - if (iProcessData is not ProcessData processData) - throw new Exception(string.Concat("A) No Data - ", dateTime.Ticks)); - string mid; - if (!string.IsNullOrEmpty(processData.Run) && string.IsNullOrEmpty(processData.Reactor) && string.IsNullOrEmpty(processData.RDS) && string.IsNullOrEmpty(processData.PSN)) - mid = processData.Run; - else if (!string.IsNullOrEmpty(processData.Employee) && string.IsNullOrEmpty(processData.Reactor) && string.IsNullOrEmpty(processData.RDS) && string.IsNullOrEmpty(processData.PSN)) - mid = processData.Employee; - else - { - mid = string.Concat(processData.Reactor, "-", processData.RDS, "-", processData.PSN); - mid = Regex.Replace(mid, @"[\\,\/,\:,\*,\?,\"",\<,\>,\|]", "_").Split('\r')[0].Split('\n')[0]; - } - SetFileParameterLotID(mid); - _Logistics.Update(mid, processData.Reactor); - if (iProcessData.Details.Count == 0) - throw new Exception(string.Concat("B) No Data - ", dateTime.Ticks)); - results = iProcessData.GetResults(this, _Logistics, results.Item4); - } - return results; - } - -} \ No newline at end of file diff --git a/Adaptation/FileHandlers/txt/ProcessData.cs b/Adaptation/FileHandlers/txt/ProcessData.cs deleted file mode 100644 index 7c57964..0000000 --- a/Adaptation/FileHandlers/txt/ProcessData.cs +++ /dev/null @@ -1,593 +0,0 @@ -using Adaptation.Shared; -using Adaptation.Shared.Methods; -using log4net; -using System; -using System.Collections.Generic; -using System.Data; -using System.Globalization; -using System.IO; -using System.Linq; -using System.Text; -using System.Text.Json; -using System.Text.Json.Serialization; -using System.Text.RegularExpressions; - -namespace Adaptation.FileHandlers.txt; - -public class ProcessData : IProcessData -{ - - private int _I; - private string _Data; - - private readonly ILog _Log; - private readonly List _Details; - - public string JobID { get; set; } - public string MesEntity { get; set; } - public string AutoOptimizeGain { get; set; } - public string AutoProbeHeightSet { get; set; } - public string Avg { get; set; } - public string DLRatio { get; set; } - public string DataReject { get; set; } - public DateTime Date { get; set; } - public string Employee { get; set; } - public string Engineer { get; set; } - public string EquipId { get; set; } - public string FileName { get; set; } - public string Layer { get; set; } - public string Lot { get; set; } - public string PSN { get; set; } - public string RDS { get; set; } - public string Reactor { get; set; } - public string Recipe { get; set; } - public string ResistivitySpec { get; set; } - public string Run { get; set; } - public string SemiRadial { get; set; } - public string StdDev { get; set; } - public string Temp { get; set; } - public string UniqueId { get; set; } - public string Zone { get; set; } - - List Shared.Properties.IProcessData.Details => _Details; - - public ProcessData(IFileRead fileRead, Logistics logistics, List fileInfoCollection) - { - fileInfoCollection.Clear(); - _Details = new List(); - _I = 0; - _Data = string.Empty; - JobID = logistics.JobID; - MesEntity = logistics.MesEntity; - _Log = LogManager.GetLogger(typeof(ProcessData)); - Parse(fileRead, logistics, fileInfoCollection); - } - - string IProcessData.GetCurrentReactor(IFileRead fileRead, Logistics logistics, Dictionary reactors) => throw new Exception(string.Concat("See ", nameof(Parse))); - - Tuple> IProcessData.GetResults(IFileRead fileRead, Logistics logistics, List fileInfoCollection) - { - Tuple> results; - List tests = new(); - foreach (object item in _Details) - tests.Add(Test.CDE); - List descriptions = fileRead.GetDescriptions(fileRead, tests, this); - if (tests.Count != descriptions.Count) - throw new Exception(); - for (int i = 0; i < tests.Count; i++) - { - if (descriptions[i] is not Description description) - throw new Exception(); - if (description.Test != (int)tests[i]) - throw new Exception(); - } - List fileReadDescriptions = (from l in descriptions select (Description)l).ToList(); - string json = JsonSerializer.Serialize(fileReadDescriptions, fileReadDescriptions.GetType()); - JsonElement[] jsonElements = JsonSerializer.Deserialize(json); - results = new Tuple>(logistics.Logistics1[0], tests.ToArray(), jsonElements, fileInfoCollection); - return results; - } - - private string GetBefore(string text) - { - string str; - string str1; - int num = _Data.IndexOf(text, _I); - if (num <= -1) - { - str = _Data.Substring(_I); - _I = _Data.Length; - str1 = str.Trim(); - } - else - { - str = _Data.Substring(_I, num - _I); - _I = num + text.Length; - str1 = str.Trim(); - } - return str1; - } - - private string GetBefore(string text, bool trim) - { - string str; - string before; - if (!trim) - { - int num = _Data.IndexOf(text, _I); - if (num <= -1) - { - str = _Data.Substring(_I); - _I = _Data.Length; - before = str; - } - else - { - str = _Data.Substring(_I, num - _I); - _I = num + text.Length; - before = str; - } - } - else - { - before = GetBefore(text); - } - return before; - } - - private string GetToEOL() => GetBefore("\n"); - - private string GetToEOL(bool trim) - { - string str; - str = !trim ? GetBefore("\n", false) : GetToEOL(); - return str; - } - - private string GetToken() - { - while (true) - { - if (_I >= _Data.Length || !IsNullOrWhiteSpace(_Data.Substring(_I, 1))) - break; - _I++; - } - int num = _I; - while (true) - { - if (num >= _Data.Length || IsNullOrWhiteSpace(_Data.Substring(num, 1))) - break; - num++; - } - string str = _Data.Substring(_I, num - _I); - _I = num; - return str.Trim(); - } - - private string GetToText(string text) - { - string str = _Data.Substring(_I, _Data.IndexOf(text, _I) - _I).Trim(); - return str; - } - - private bool IsBlankLine() - { - int num = _Data.IndexOf("\n", _I); - return IsNullOrWhiteSpace(num > -1 ? _Data.Substring(_I, num - _I) : _Data.Substring(_I)); - } - - private static bool IsNullOrWhiteSpace(string text) - { - bool flag; - int num = 0; - while (true) - { - if (num >= text.Length) - { - flag = true; - break; - } - else if (char.IsWhiteSpace(text[num])) - { - num++; - } - else - { - flag = false; - break; - } - } - return flag; - } - - private string PeekNextLine() - { - int num = _I; - string toEOL = GetToEOL(); - _I = num; - return toEOL; - } - - private void ScanPast(string text) - { - int num = _Data.IndexOf(text, _I); - if (num <= -1) - { - _I = _Data.Length; - } - else - { - _I = num + text.Length; - } - } - - internal static DateTime GetDateTime(Logistics logistics, string dateTimeText) - { - DateTime result; - string inputDateFormat = "HH:mm MM/dd/yy"; - if (dateTimeText.Length != inputDateFormat.Length) - result = logistics.DateTimeFromSequence; - else - { - if (!DateTime.TryParseExact(dateTimeText, inputDateFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime dateTimeParsed)) - result = logistics.DateTimeFromSequence; - else - { - if (dateTimeParsed < logistics.DateTimeFromSequence.AddDays(1) && dateTimeParsed > logistics.DateTimeFromSequence.AddDays(-1)) - result = dateTimeParsed; - else - result = logistics.DateTimeFromSequence; - } - } - return result; - } - - private static (string, string) GetReactorAndRDS(string defaultReactor, string defaultRDS, string text, string formattedText, string[] segments) - { - string rds; - string reactor; - if (string.IsNullOrEmpty(text) || segments.Length == 0 || string.IsNullOrEmpty(formattedText)) - reactor = defaultReactor; - else - reactor = segments[0]; - if (segments.Length <= 1 || !int.TryParse(segments[1], out int rdsValue) || rdsValue < 99) - rds = defaultRDS; - else - rds = segments[1]; - if (reactor.Length > 3) - { - rds = reactor; - reactor = defaultReactor; - } - return new(reactor, rds); - } - - private static (string, string) GetLayerAndPSN(string defaultLayer, string defaultPSN, string[] segments) - { - string psn; - string layer; - if (segments.Length <= 2) - { - psn = defaultPSN; - layer = defaultLayer; - } - else - { - string[] segmentsB = segments[2].Split('.'); - psn = segmentsB[0]; - if (segmentsB.Length <= 1) - layer = defaultLayer; - else - { - layer = segmentsB[1]; - if (layer.Length > 1 && layer[0] == '0') - layer = layer.Substring(1); - } - } - return (layer, psn); - } - - private static string GetZone(string[] segments) - { - string result; - if (segments.Length <= 3) - result = string.Empty; - else - { - result = segments[3]; - if (result.Length > 1 && result[0] == '0') - result = result.Substring(1); - } - return result; - } - - public static Descriptor GetDescriptor(string text) - { - Descriptor result; - string psn; - string rds; - string run; - string zone; - string layer; - string title; - string reactor; - string employee; - string defaultPSN = string.Empty; - string defaultRDS = string.Empty; - string defaultZone = string.Empty; - string defaultLayer = string.Empty; - string defaultReactor = string.Empty; - string defaultEmployee = string.Empty; - if (Regex.IsMatch(text, @"^[a-zA-z][0-9]{2,4}$")) - { - run = text.ToUpper(); - title = text; - psn = defaultPSN; - rds = defaultRDS; - zone = defaultZone; - layer = defaultLayer; - reactor = defaultReactor; - employee = defaultEmployee; - } - else if (string.IsNullOrEmpty(text) || (text.Length is 2 or 3 && Regex.IsMatch(text, "^[a-zA-z]{2,3}"))) - { - run = text; - title = text; - employee = text; - psn = defaultPSN; - rds = defaultRDS; - zone = defaultZone; - layer = defaultLayer; - reactor = defaultReactor; - } - else if (Regex.IsMatch(text, @"^[0-9]{2}[.][0-9]{1}[.]?[0-9]{0,1}")) - { - string[] segments = text.Split('.'); - run = text; - title = text; - psn = defaultPSN; - rds = defaultRDS; - layer = segments[1]; - reactor = segments[0]; - employee = defaultEmployee; - if (segments.Length <= 2) - zone = defaultZone; - else - zone = segments[2]; - } - else - { - // Remove illegal characters \/:*?"<>| found in the run. - title = Regex.Replace(text, @"[\\,\/,\:,\*,\?,\"",\<,\>,\|]", "_").Split('\r')[0].Split('\n')[0]; - if (title.Length > 2 && title[0] == '1' && (title[1] == 'T' || title[1] == 't')) - title = title.Substring(2); - run = title; - string[] segments = title.Split('-'); - // bool hasRDS = Regex.IsMatch(title, "[-]?([QP][0-9]{4,}|[0-9]{5,})[-]?"); - (reactor, rds) = GetReactorAndRDS(defaultReactor, defaultRDS, text, title, segments); - (layer, psn) = GetLayerAndPSN(defaultLayer, defaultPSN, segments); - zone = GetZone(segments); - employee = defaultEmployee; - } - result = new(employee, layer, psn, rds, reactor, run, title, zone); - return result; - } - - private void Set(Logistics logistics, string receivedData) - { - string lot; - string psn; - string rds; - string run; - string temp; - string zone; - string layer; - string title; - DateTime date; - string recipe; - string dlRatio; - string equipId; - string reactor; - string employee; - string engineer; - string resistivitySpec; - ScanPast("RUN:"); - title = GetToEOL(); - ScanPast("Recipe:"); - recipe = GetBefore("RESISTIVITY SPEC:"); - if (string.IsNullOrEmpty(recipe)) - { - _I = 0; - _Data = receivedData; - ScanPast("RUN:"); - title = GetToEOL(); - ScanPast("DEVICE:"); - recipe = GetBefore("RESISTIVITY SPEC:"); - } - title = title.Trim(); - if (title[0] != '[' && title[title.Length - 1] != ']') - throw new Exception("Lot summary data is invalid or missing."); - title = title.Substring(1, title.Length - 2); - Descriptor descriptor = GetDescriptor(title); - psn = descriptor.PSN; - rds = descriptor.RDS; - run = descriptor.Run; - zone = descriptor.Zone; - layer = descriptor.Layer; - title = descriptor.Title; - reactor = descriptor.Reactor; - employee = descriptor.Employee; - resistivitySpec = GetToEOL(); - ScanPast("EQUIP#:"); - equipId = GetBefore("Engineer:"); - // Remove illegal characters \/:*?"<>| found in the equipId. - equipId = Regex.Replace(equipId, @"[\\,\/,\:,\*,\?,\"",\<,\>,\|]", "_").Split('\r')[0].Split('\n')[0]; - engineer = GetToEOL(); - ScanPast("LotID:"); - lot = GetBefore("D.L.RATIO:"); - dlRatio = GetToEOL(); - ScanPast("OPERATOR:"); - if (!string.IsNullOrEmpty(employee)) - _ = GetBefore("TEMP:"); - else - employee = GetBefore("TEMP:"); - temp = GetToken(); - string dateTimeText = GetToEOL(); - date = GetDateTime(logistics, dateTimeText); - //create filename / unique id - string timeFormat = "yyyyMMddHHmmss"; - _Log.Debug($"****ParseData - Title:{title}; EquipId:{equipId};"); - if (string.IsNullOrEmpty(title)) - throw new Exception("Batch (title) information does not exist"); - Lot = lot; - PSN = psn; - RDS = rds; - Run = run; - Date = date; - Temp = temp; - Zone = zone; - Layer = layer; - Recipe = recipe; - DLRatio = dlRatio; - Reactor = reactor; - Employee = employee; - Engineer = engineer; - ResistivitySpec = resistivitySpec; - UniqueId = string.Concat(equipId, "_", title, "_", logistics.DateTimeFromSequence.ToString(timeFormat)); - } - - private void Parse(IFileRead fileRead, Logistics logistics, List fileInfoCollection) - { - if (fileRead is null) - throw new ArgumentNullException(nameof(fileRead)); - // Convert the source file to UTF8Encoding format and then back to string for processing. This convertion - // shall eliminate the special HEX characters such as 0x18 "CANCEL" and 0x20 "SPACE" captured via nPort. - string rawText = File.ReadAllText(logistics.ReportFullPath); - UTF8Encoding utf8Encoding = new(); - byte[] bytes = utf8Encoding.GetBytes(rawText); - string convertedText = utf8Encoding.GetString(bytes); - // Replaces all control characters with a space, except for the TAB (0x09), LF (0x0A), CR (0x0D), and - // normal ASCII characters, which are valid characters for SharePoint. - string receivedData = Regex.Replace(convertedText, @"[^\u0009\u000A\u000D\u0020-\u007E]", " "); - string log = receivedData; - for (short i = 0; i < short.MaxValue; i++) - { - if (!log.Contains(" ")) - break; - log = log.Replace(" ", " "); - } - log = log.Replace(" ", "\t").Replace(": ", "\t").Replace(":\t", "\t"); - IEnumerable lines = from l in log.Split('\r') select l.Trim(); - string logFile = Path.ChangeExtension(logistics.ReportFullPath, ".log"); - File.WriteAllLines(logFile, lines); - fileInfoCollection.Add(new FileInfo(logFile)); - //parse file - string h = string.Empty; - receivedData = receivedData.Replace("\r", "\n").Trim(); - _I = 0; - _Data = string.Empty; - if (string.IsNullOrEmpty(receivedData)) - throw new Exception("No data!"); - Detail detail; - _I = 0; - _Data = receivedData; - List details = new(); - Set(logistics, receivedData); - ScanPast("AutoOptimizeGain ="); - AutoOptimizeGain = GetBefore("AutoProbeHeightSet ="); - AutoProbeHeightSet = GetToEOL(); - ScanPast("DataReject"); - DataReject = GetToEOL(); - _ = GetToEOL(); - FileName = GetToEOL(); - _ = GetToEOL(); - _ = GetToEOL(); - bool check = false; - while (!IsBlankLine()) - { - detail = new Detail() { Pt = GetToken() }; - if (detail.Pt.Contains("Avg")) - break; - else if (!detail.Pt.Contains(':')) - { - detail.R = GetToken(); - detail.T = GetToken(); - detail.Rs = GetToken(); - detail.Merit = GetToken(); - detail.UniqueId = string.Concat("_Point-", details.Count + 1); - _ = GetToEOL(); - details.Add(detail); - } - else - { - check = true; - break; - } - } - _I = 0; - _Data = receivedData; - if (!check) - { - ScanPast("Avg ="); - Avg = GetToken(); - StdDev = GetToken(); - ScanPast("SEMI Radial="); - SemiRadial = GetToEOL(); - } - else - { - ScanPast("RsAv "); - Avg = GetBefore("+/-"); - StdDev = GetToken(); - _Log.Debug($"****ProcessData - RsAv StDev={StdDev}"); - ScanPast("(Mx+Mn)"); - SemiRadial = GetToken(); - _Log.Debug($"****ProcessData - RsAv SemiRadial={SemiRadial}"); - _ = GetToEOL(); - int num = 0; - _ = GetBefore(": "); - for (string i = GetToken(); !string.IsNullOrEmpty(i); i = GetToken()) - { - if (!i.Contains(':')) - { - detail = new Detail(); - int num1 = num + 1; - num = num1; - _Log.Debug($"****ProcessData - RsAv Point={num1}"); - detail.Pt = num1.ToString(); - detail.Rs = i; - detail.Merit = GetToken().Replace("|", ""); - detail.UniqueId = string.Concat("_Point-", details.Count + 1); - details.Add(detail); - } - } - } - foreach (Detail item in details) - { - item.HeaderUniqueId = UniqueId; - item.UniqueId = string.Concat(item, item.UniqueId); - } - _Details.AddRange(details); - fileInfoCollection.Add(logistics.FileInfo); - } - -#nullable enable - - internal static List GetDescriptions(JsonElement[] jsonElements) - { - List results = new(); - Description? description; - JsonSerializerOptions jsonSerializerOptions = new() { NumberHandling = JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString }; - foreach (JsonElement jsonElement in jsonElements) - { - if (jsonElement.ValueKind != JsonValueKind.Object) - throw new Exception(); - description = JsonSerializer.Deserialize(jsonElement.ToString(), jsonSerializerOptions); - if (description is null) - continue; - results.Add(description); - } - return results; - } - -} \ No newline at end of file diff --git a/Adaptation/_Tests/Static/RsM.cs b/Adaptation/_Tests/Static/RsM.cs index 6052488..bbd16c7 100644 --- a/Adaptation/_Tests/Static/RsM.cs +++ b/Adaptation/_Tests/Static/RsM.cs @@ -183,11 +183,9 @@ public class RsM : LoggingUnitTesting, IDisposable StringBuilder results = new(); (string cellInstanceName, string cellInstanceVersionName)[] collection = new (string, string)[] { - new("CDE3", "v2.57.0"), new("CDE4", "v2.57.0"), new("CDE5", "v2.57.0"), new("CDE6", "v2.57.0"), - new("CDE3-EQPT", "v2.57.0"), new("CDE4-EQPT", "v2.57.0"), new("CDE5-EQPT", "v2.57.0"), new("CDE6-EQPT", "v2.57.0"), diff --git a/Adaptation/_Tests/Static/txt.cs b/Adaptation/_Tests/Static/txt.cs deleted file mode 100644 index c3afc33..0000000 --- a/Adaptation/_Tests/Static/txt.cs +++ /dev/null @@ -1,244 +0,0 @@ -using Adaptation._Tests.Shared; -using Microsoft.Extensions.Logging; -using Microsoft.VisualStudio.TestTools.UnitTesting; -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.IO; -using System.Linq; -using System.Reflection; -using System.Text; - -namespace Adaptation._Tests.Static; - -[TestClass] -public class TXT : LoggingUnitTesting, IDisposable -{ - -#pragma warning disable CA2254 -#pragma warning disable IDE0060 - - internal static TXT LoggingUnitTesting { get; private set; } - - public TXT() : base(testContext: null, declaringType: null) - { - if (LoggingUnitTesting is null) - throw new Exception(); - } - - public TXT(TestContext testContext) : base(testContext, new StackFrame().GetMethod().DeclaringType) - { - } - - [ClassInitialize] - public static void ClassInitialize(TestContext testContext) => LoggingUnitTesting ??= new TXT(testContext); - - [ClassCleanup()] - public static void ClassCleanup() - { - LoggingUnitTesting?.Logger?.LogInformation("Cleanup"); - LoggingUnitTesting?.Dispose(); - } - - private static void NonThrowTryCatch() - { - try - { throw new Exception(); } - catch (Exception) { } - } - - [TestMethod] - public void TestDateTime() - { - DateTime dateTime = DateTime.Now; - Assert.IsTrue(dateTime.ToString("M/d/yyyy h:mm:ss tt") == dateTime.ToString()); - } - - [TestMethod] - public void TestDescriptor() - { - FileHandlers.txt.Descriptor descriptor; - MethodBase methodBase = new StackFrame().GetMethod(); - LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration")); - descriptor = FileHandlers.txt.ProcessData.GetDescriptor(string.Empty); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.Reactor)); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.RDS)); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN)); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.Layer)); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.Zone)); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee)); - descriptor = FileHandlers.txt.ProcessData.GetDescriptor("12-123456-1234"); - Assert.IsTrue(descriptor.Reactor is "12"); - Assert.IsTrue(descriptor.RDS is "123456"); - Assert.IsTrue(descriptor.PSN is "1234"); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.Layer)); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.Zone)); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee)); - descriptor = FileHandlers.txt.ProcessData.GetDescriptor("123456"); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.Reactor)); - Assert.IsTrue(descriptor.RDS is "123456"); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN)); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.Layer)); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.Zone)); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee)); - descriptor = FileHandlers.txt.ProcessData.GetDescriptor("1T123456"); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.Reactor)); - Assert.IsTrue(descriptor.RDS is "123456"); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN)); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.Layer)); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.Zone)); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee)); - descriptor = FileHandlers.txt.ProcessData.GetDescriptor("MP"); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.Reactor)); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.RDS)); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN)); - Assert.IsTrue(descriptor.Employee is "MP"); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.Layer)); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.Zone)); - descriptor = FileHandlers.txt.ProcessData.GetDescriptor("12-123456-1234.2-1"); - Assert.IsTrue(descriptor.Reactor is "12"); - Assert.IsTrue(descriptor.RDS is "123456"); - Assert.IsTrue(descriptor.PSN is "1234"); - Assert.IsTrue(descriptor.Layer is "2"); - Assert.IsTrue(descriptor.Zone is "1"); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee)); - descriptor = FileHandlers.txt.ProcessData.GetDescriptor("12-123456-1234.02-1"); - Assert.IsTrue(descriptor.Reactor is "12"); - Assert.IsTrue(descriptor.RDS is "123456"); - Assert.IsTrue(descriptor.PSN is "1234"); - Assert.IsTrue(descriptor.Layer is "2"); - Assert.IsTrue(descriptor.Zone is "1"); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee)); - descriptor = FileHandlers.txt.ProcessData.GetDescriptor("20"); - Assert.IsTrue(descriptor.Reactor is "20"); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.RDS)); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN)); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.Layer)); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.Zone)); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee)); - descriptor = FileHandlers.txt.ProcessData.GetDescriptor("20.2"); - Assert.IsTrue(descriptor.Reactor is "20"); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.RDS)); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN)); - Assert.IsTrue(descriptor.Layer is "2"); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.Zone)); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee)); - descriptor = FileHandlers.txt.ProcessData.GetDescriptor("20.2.1"); - Assert.IsTrue(descriptor.Layer is "2"); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN)); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.RDS)); - Assert.IsTrue(descriptor.Reactor is "20"); - Assert.IsTrue(descriptor.Zone is "1"); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee)); - descriptor = FileHandlers.txt.ProcessData.GetDescriptor("20.1.1"); - Assert.IsTrue(descriptor.Layer is "1"); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN)); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.RDS)); - Assert.IsTrue(descriptor.Reactor is "20"); - Assert.IsTrue(descriptor.Zone is "1"); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee)); - descriptor = FileHandlers.txt.ProcessData.GetDescriptor("P2-LOW-RR"); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.Layer)); - Assert.IsTrue(descriptor.PSN is "RR"); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.RDS)); - Assert.IsTrue(descriptor.Reactor is "P2"); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.Zone)); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee)); - descriptor = FileHandlers.txt.ProcessData.GetDescriptor("i171308.1.51"); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.Layer)); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN)); - Assert.IsTrue(descriptor.RDS is "i171308.1.51"); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.Reactor)); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.Zone)); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee)); - descriptor = FileHandlers.txt.ProcessData.GetDescriptor("o171308.1.51"); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.Layer)); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN)); - Assert.IsTrue(descriptor.RDS is "o171308.1.51"); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.Reactor)); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.Zone)); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee)); - descriptor = FileHandlers.txt.ProcessData.GetDescriptor("O171308.1.51"); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.Layer)); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN)); - Assert.IsTrue(descriptor.RDS is "O171308.1.51"); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.Reactor)); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.Zone)); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee)); - descriptor = FileHandlers.txt.ProcessData.GetDescriptor("171308.1.51"); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.Layer)); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN)); - Assert.IsTrue(descriptor.RDS is "171308.1.51"); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.Reactor)); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.Zone)); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee)); - descriptor = FileHandlers.txt.ProcessData.GetDescriptor("75-QP1414-SPLIT4"); - Assert.IsTrue(!string.IsNullOrEmpty(descriptor.Title)); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.Layer)); - Assert.IsTrue(descriptor.PSN is "SPLIT4"); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.RDS)); - Assert.IsTrue(descriptor.Reactor is "75"); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.Zone)); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee)); - descriptor = FileHandlers.txt.ProcessData.GetDescriptor("B48"); - Assert.IsTrue(descriptor.Run == "B48"); - descriptor = FileHandlers.txt.ProcessData.GetDescriptor("B48"); - Assert.IsTrue(descriptor.Run == "B48"); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.Layer)); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN)); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.PSN)); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.Reactor)); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.Zone)); - Assert.IsTrue(string.IsNullOrEmpty(descriptor.Employee)); - LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit")); - NonThrowTryCatch(); - } - -#if DEBUG - [Ignore] -#endif - [TestMethod] - public void Production() - { - MethodBase methodBase = new StackFrame().GetMethod(); - StringBuilder results = new(); - (string cellInstanceName, string cellInstanceVersionName)[] collection = new (string, string)[] - { - new("CDE2", "v2.57.0"), - }; - string production = "http://messa08ec.infineon.com:9003/CellInstanceServiceV2"; - Shared.PasteSpecialXml.EAF.XML.API.CellInstance.CellInstanceVersion cellInstanceVersion; - LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration")); - foreach ((string cellInstanceName, string cellInstanceVersionName) in collection) - { - cellInstanceVersion = AdaptationTesting.GetCellInstanceVersion($"{production}/{cellInstanceName}/{cellInstanceVersionName}/configuration"); - _ = results.AppendLine($"{cellInstanceName}\t{cellInstanceVersionName}\t{cellInstanceVersion.EdaConnection.PortNumber}"); - } - string sourceDirectory = "D:/Tmp/cellInstanceVersion.EdaConnection.PortNumber"; - if (!Directory.Exists(sourceDirectory)) - _ = Directory.CreateDirectory(sourceDirectory); - File.WriteAllText(Path.Combine(sourceDirectory, $"{methodBase.Module.Name}-{methodBase.ReflectedType.Name}-{methodBase.Name}.tsv"), results.ToString()); - LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit")); - } - - [TestMethod] - public void CellInstanceVersionEdaConnectionPortNumber() - { - MethodBase methodBase = new StackFrame().GetMethod(); - string sourceDirectory = "D:/Tmp/cellInstanceVersion.EdaConnection.PortNumber"; - if (Directory.Exists(sourceDirectory)) - { - string destinationDirectory = Path.Combine(sourceDirectory, "All"); - if (!Directory.Exists(destinationDirectory)) - _ = Directory.CreateDirectory(destinationDirectory); - List lines = new(); - string[] files = Directory.GetFiles(sourceDirectory, "*.tsv", SearchOption.TopDirectoryOnly); - foreach (string file in files) - lines.AddRange(File.ReadAllLines(file)); - File.WriteAllLines(Path.Combine(destinationDirectory, $"{DateTime.Now.Ticks}.tsv"), lines.Distinct().OrderBy(l => l)); - } - LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit")); - NonThrowTryCatch(); - } - -} \ No newline at end of file diff --git a/MET08RESIMAPCDE.csproj b/MET08RESIMAPCDE.csproj index 7da4ae0..9d84170 100644 --- a/MET08RESIMAPCDE.csproj +++ b/MET08RESIMAPCDE.csproj @@ -146,11 +146,6 @@ - - - - -