MET08THFTIRQS408M - v2.43.4 - Builtin MonA, Run with layer
and 1T
This commit is contained in:
parent
09f85078f4
commit
0626e4f4e3
2
.gitignore
vendored
2
.gitignore
vendored
@ -336,3 +336,5 @@ ASALocalRun/
|
||||
!.vscode/tasks.json
|
||||
!.vscode/launch.json
|
||||
!.vscode/extensions.json
|
||||
|
||||
*.lnk
|
||||
|
2
Adaptation/.vscode/launch.json
vendored
2
Adaptation/.vscode/launch.json
vendored
@ -4,7 +4,7 @@
|
||||
"name": ".NET Core Attach",
|
||||
"type": "coreclr",
|
||||
"request": "attach",
|
||||
"processId": 3316
|
||||
"processId": 17568
|
||||
}
|
||||
]
|
||||
}
|
||||
|
3
Adaptation/.vscode/settings.json
vendored
3
Adaptation/.vscode/settings.json
vendored
@ -31,7 +31,8 @@
|
||||
"titleBar.activeBackground": "#d7e7a9",
|
||||
"titleBar.activeForeground": "#15202b",
|
||||
"titleBar.inactiveBackground": "#d7e7a999",
|
||||
"titleBar.inactiveForeground": "#15202b99"
|
||||
"titleBar.inactiveForeground": "#15202b99",
|
||||
"commandCenter.border": "#15202b99"
|
||||
},
|
||||
"peacock.color": "#d7e7a9"
|
||||
}
|
25
Adaptation/FileHandlers/QS408M/Descriptor.cs
Normal file
25
Adaptation/FileHandlers/QS408M/Descriptor.cs
Normal file
@ -0,0 +1,25 @@
|
||||
namespace Adaptation.FileHandlers.QS408M;
|
||||
|
||||
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 Wafer { get; private set; }
|
||||
public string Zone { get; private set; }
|
||||
|
||||
public Descriptor(string employee, string layer, string psn, string rds, string reactor, string wafer, string zone)
|
||||
{
|
||||
Employee = employee;
|
||||
Layer = layer;
|
||||
PSN = psn;
|
||||
RDS = rds;
|
||||
Reactor = reactor;
|
||||
Wafer = wafer;
|
||||
Zone = zone;
|
||||
}
|
||||
|
||||
}
|
@ -103,18 +103,23 @@ public class FileRead : Shared.FileRead, IFileRead
|
||||
Tuple<string, Test[], JsonElement[], List<FileInfo>> results = new(string.Empty, null, null, new List<FileInfo>());
|
||||
_Logistics = new Logistics(this, reportFullPath, useSplitForMID: true);
|
||||
SetFileParameterLotIDToLogisticsMID();
|
||||
if (reportFullPath.Length < _MinFileLength)
|
||||
results.Item4.Add(new FileInfo(reportFullPath));
|
||||
if (_Logistics.FileInfo.Length < _MinFileLength)
|
||||
results.Item4.Add(_Logistics.FileInfo);
|
||||
else
|
||||
{
|
||||
IProcessData iProcessData = new ProcessData(this, _Logistics, results.Item4, _OriginalDataBioRad, lastProcessData: _LastProcessData);
|
||||
if (iProcessData is not ProcessData processData)
|
||||
throw new Exception(string.Concat("A) No Data - ", dateTime.Ticks));
|
||||
string mid = string.Concat(processData.Reactor, "-", processData.RDS, "-", processData.PSN);
|
||||
string mid;
|
||||
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];
|
||||
_Logistics.MID = mid;
|
||||
}
|
||||
SetFileParameterLotID(mid);
|
||||
_Logistics.ProcessJobID = processData.Reactor;
|
||||
_Logistics.Update(mid, processData.Reactor);
|
||||
if (!iProcessData.Details.Any())
|
||||
throw new Exception(string.Concat("B) No Data - ", dateTime.Ticks));
|
||||
results = iProcessData.GetResults(this, _Logistics, results.Item4);
|
||||
|
@ -253,6 +253,195 @@ public partial class ProcessData : IProcessData
|
||||
return result;
|
||||
}
|
||||
|
||||
public static Descriptor GetDescriptor(string text)
|
||||
{
|
||||
Descriptor result;
|
||||
string psn;
|
||||
string rds;
|
||||
string zone;
|
||||
string wafer;
|
||||
string layer;
|
||||
string reactor;
|
||||
string employee;
|
||||
const string defaultPSN = "0000";
|
||||
const string defaultReactor = "00";
|
||||
const string defaultRDS = "000000";
|
||||
if (text.Length is 2 or 3)
|
||||
{
|
||||
wafer = text;
|
||||
employee = text;
|
||||
rds = defaultRDS;
|
||||
psn = defaultPSN;
|
||||
zone = string.Empty;
|
||||
layer = string.Empty;
|
||||
reactor = defaultReactor;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Remove illegal characters \/:*?"<>| found in the Batch
|
||||
wafer = Regex.Replace(text, @"[\\,\/,\:,\*,\?,\"",\<,\>,\|]", "_").Split('\r')[0].Split('\n')[0];
|
||||
if (wafer.StartsWith("1T") || wafer.StartsWith("1t"))
|
||||
wafer = wafer.Substring(2);
|
||||
string[] segments = wafer.Split('-');
|
||||
if (segments.Length == 0)
|
||||
reactor = defaultReactor;
|
||||
else
|
||||
reactor = segments[0];
|
||||
if (segments.Length <= 1)
|
||||
rds = defaultRDS;
|
||||
else
|
||||
rds = segments[1];
|
||||
if (reactor.Length > 3)
|
||||
{
|
||||
rds = reactor;
|
||||
reactor = defaultReactor;
|
||||
}
|
||||
if (segments.Length <= 2)
|
||||
psn = defaultPSN;
|
||||
else
|
||||
psn = segments[2];
|
||||
if (segments.Length < 3)
|
||||
layer = string.Empty;
|
||||
else
|
||||
{
|
||||
string[] segmentsB = segments[2].Split('.');
|
||||
if (segmentsB.Length > 1)
|
||||
psn = segmentsB[0];
|
||||
if (segmentsB.Length <= 1)
|
||||
layer = string.Empty;
|
||||
else
|
||||
layer = segmentsB[1];
|
||||
}
|
||||
if (segments.Length <= 3)
|
||||
zone = string.Empty;
|
||||
else
|
||||
zone = segments[3];
|
||||
if (segments.Length <= 4)
|
||||
employee = string.Empty;
|
||||
else
|
||||
employee = segments[4];
|
||||
}
|
||||
if (layer.Length > 1 && layer[0] == '0')
|
||||
layer = layer.Substring(1);
|
||||
if (zone.Length > 1 && zone[0] == '0')
|
||||
zone = zone.Substring(1);
|
||||
result = new(employee, layer, psn, rds, reactor, wafer, zone);
|
||||
return result;
|
||||
}
|
||||
|
||||
private void Set(Logistics logistics, ProcessData lastProcessData, string receivedData)
|
||||
{
|
||||
string psn;
|
||||
string rds;
|
||||
string date;
|
||||
string zone;
|
||||
string batch;
|
||||
string layer;
|
||||
string title;
|
||||
string wafer;
|
||||
string recipe;
|
||||
string reactor;
|
||||
string cassette;
|
||||
string employee;
|
||||
title = GetBefore("Recipe:");
|
||||
recipe = GetToken();
|
||||
string dateTimeText = GetToEOL();
|
||||
if (dateTimeText.EndsWith("."))
|
||||
dateTimeText = dateTimeText.Remove(dateTimeText.Length - 1, 1);
|
||||
DateTime dateTime = GetDateTime(logistics, dateTimeText);
|
||||
date = dateTime.ToString();
|
||||
ScanPast("operator:");
|
||||
employee = GetBefore("batch:");
|
||||
batch = GetToEOL();
|
||||
// Remove illegal characters \/:*?"<>| found in the Batch
|
||||
batch = Regex.Replace(batch, @"[\\,\/,\:,\*,\?,\"",\<,\>,\|]", "_").Split('\r')[0].Split('\n')[0];
|
||||
ScanPast("cassette:");
|
||||
cassette = GetBefore("wafer:");
|
||||
if (string.IsNullOrEmpty(batch))
|
||||
{
|
||||
_I = 0;
|
||||
_Data = receivedData;
|
||||
ScanPast("wafer:");
|
||||
}
|
||||
wafer = GetToEOL();
|
||||
_ = GetToEOL();
|
||||
_ = GetToEOL();
|
||||
if (string.IsNullOrEmpty(wafer))
|
||||
throw new Exception("Wafer field is missing.");
|
||||
Descriptor descriptor = GetDescriptor(wafer);
|
||||
psn = descriptor.PSN;
|
||||
rds = descriptor.RDS;
|
||||
zone = descriptor.Zone;
|
||||
wafer = descriptor.Wafer;
|
||||
layer = descriptor.Layer;
|
||||
reactor = descriptor.Reactor;
|
||||
if (employee != wafer)
|
||||
employee = descriptor.Employee;
|
||||
if (logistics.DateTimeFromSequence > DateTime.Now.AddHours(-24))
|
||||
{
|
||||
if (string.IsNullOrEmpty(lastProcessData.Wafer))
|
||||
{
|
||||
lastProcessData.Batch = JobID;
|
||||
lastProcessData.Cassette = JobID;
|
||||
lastProcessData.Employee = JobID;
|
||||
lastProcessData.Recipe = JobID;
|
||||
lastProcessData.Title = JobID;
|
||||
}
|
||||
lastProcessData.Wafer = wafer;
|
||||
lastProcessData.Reactor = reactor;
|
||||
lastProcessData.RDS = rds;
|
||||
string check = "--------";
|
||||
if (string.IsNullOrEmpty(batch) || batch.Contains(check))
|
||||
batch = lastProcessData.Batch;
|
||||
else
|
||||
lastProcessData.Batch = batch;
|
||||
if (string.IsNullOrEmpty(cassette) || cassette.Contains(check))
|
||||
cassette = lastProcessData.Cassette;
|
||||
else
|
||||
lastProcessData.Cassette = cassette;
|
||||
if (string.IsNullOrEmpty(employee) || employee.Contains(check))
|
||||
employee = lastProcessData.Employee;
|
||||
else
|
||||
lastProcessData.Employee = employee;
|
||||
if (string.IsNullOrEmpty(recipe) || recipe.Contains(check))
|
||||
recipe = lastProcessData.Recipe;
|
||||
else
|
||||
lastProcessData.Recipe = recipe;
|
||||
if (string.IsNullOrEmpty(title) || title.Contains(check))
|
||||
title = lastProcessData.Title;
|
||||
else
|
||||
lastProcessData.Title = title;
|
||||
}
|
||||
//fix title
|
||||
StringBuilder titleFixed = new();
|
||||
foreach (char c in title)
|
||||
{
|
||||
if (char.IsLetterOrDigit(c) || c == '-' || c == '.')
|
||||
_ = titleFixed.Append(c);
|
||||
}
|
||||
//fix wafer
|
||||
StringBuilder waferFixed = new();
|
||||
foreach (char c in wafer)
|
||||
{
|
||||
if (char.IsLetterOrDigit(c) || c == '-' || c == '.')
|
||||
_ = waferFixed.Append(c);
|
||||
}
|
||||
PSN = psn;
|
||||
RDS = rds;
|
||||
Date = date;
|
||||
Zone = zone;
|
||||
Batch = batch;
|
||||
Layer = layer;
|
||||
Recipe = recipe;
|
||||
Reactor = reactor;
|
||||
Cassette = cassette;
|
||||
Employee = employee;
|
||||
JobID = logistics.JobID;
|
||||
Title = titleFixed.ToString();
|
||||
Wafer = waferFixed.ToString();
|
||||
UniqueId = string.Concat(title, '_', wafer, '_', logistics.DateTimeFromSequence.ToString("yyyyMMddHHmmssffff"), '_', logistics.TotalSecondsSinceLastWriteTimeFromSequence);
|
||||
}
|
||||
|
||||
private void Parse(IFileRead fileRead, Logistics logistics, List<FileInfo> fileInfoCollection, string originalDataBioRad, ProcessData lastProcessData)
|
||||
{
|
||||
if (fileRead is null)
|
||||
@ -276,29 +465,7 @@ public partial class ProcessData : IProcessData
|
||||
{
|
||||
_I = 0;
|
||||
_Data = receivedData;
|
||||
Title = GetBefore("Recipe:");
|
||||
Recipe = GetToken();
|
||||
string dateTimeText = GetToEOL();
|
||||
if (dateTimeText.EndsWith("."))
|
||||
dateTimeText = dateTimeText.Remove(dateTimeText.Length - 1, 1);
|
||||
DateTime dateTime = GetDateTime(logistics, dateTimeText);
|
||||
Date = dateTime.ToString();
|
||||
ScanPast("operator:");
|
||||
Employee = GetBefore("batch:");
|
||||
Batch = GetToEOL();
|
||||
// Remove illegal characters \/:*?"<>| found in the Batch
|
||||
Batch = Regex.Replace(Batch, @"[\\,\/,\:,\*,\?,\"",\<,\>,\|]", "_").Split('\r')[0].Split('\n')[0];
|
||||
ScanPast("cassette:");
|
||||
Cassette = GetBefore("wafer:");
|
||||
if (string.IsNullOrEmpty(Batch))
|
||||
{
|
||||
_I = 0;
|
||||
_Data = receivedData;
|
||||
ScanPast("wafer:");
|
||||
}
|
||||
Wafer = GetToEOL();
|
||||
_ = GetToEOL();
|
||||
_ = GetToEOL();
|
||||
Set(logistics, lastProcessData, receivedData);
|
||||
string token = GetToken();
|
||||
int counter = 1;
|
||||
while (true)
|
||||
@ -322,86 +489,6 @@ public partial class ProcessData : IProcessData
|
||||
ScanPast("thickness");
|
||||
RVThickness = GetToEOL();
|
||||
}
|
||||
|
||||
if (string.IsNullOrEmpty(Wafer))
|
||||
throw new Exception("Wafer field is missing.");
|
||||
|
||||
//parse out batch and validate
|
||||
string[] parsedBatch = Wafer.Split('-');
|
||||
if (parsedBatch.Length >= 1)
|
||||
Reactor = parsedBatch[0];
|
||||
if (parsedBatch.Length >= 2)
|
||||
RDS = parsedBatch[1];
|
||||
if (parsedBatch.Length >= 3)
|
||||
{
|
||||
string[] parsedPSN = parsedBatch[2].Split('.');
|
||||
if (parsedPSN.Length >= 1)
|
||||
PSN = parsedPSN[0];
|
||||
if (parsedPSN.Length >= 2)
|
||||
Layer = parsedPSN[1];
|
||||
}
|
||||
if (parsedBatch.Length >= 4)
|
||||
Zone = parsedBatch[3];
|
||||
|
||||
JobID = logistics.JobID;
|
||||
|
||||
if (logistics.DateTimeFromSequence > DateTime.Now.AddHours(-24))
|
||||
{
|
||||
if (string.IsNullOrEmpty(lastProcessData.Wafer))
|
||||
{
|
||||
lastProcessData.Batch = JobID;
|
||||
lastProcessData.Cassette = JobID;
|
||||
lastProcessData.Employee = JobID;
|
||||
lastProcessData.Recipe = JobID;
|
||||
lastProcessData.Title = JobID;
|
||||
}
|
||||
lastProcessData.Wafer = Wafer;
|
||||
lastProcessData.Reactor = Reactor;
|
||||
lastProcessData.RDS = RDS;
|
||||
|
||||
string check = "--------";
|
||||
if (string.IsNullOrEmpty(Batch) || Batch.Contains(check))
|
||||
Batch = lastProcessData.Batch;
|
||||
else
|
||||
lastProcessData.Batch = Batch;
|
||||
if (string.IsNullOrEmpty(Cassette) || Cassette.Contains(check))
|
||||
Cassette = lastProcessData.Cassette;
|
||||
else
|
||||
lastProcessData.Cassette = Cassette;
|
||||
if (string.IsNullOrEmpty(Employee) || Employee.Contains(check))
|
||||
Employee = lastProcessData.Employee;
|
||||
else
|
||||
lastProcessData.Employee = Employee;
|
||||
if (string.IsNullOrEmpty(Recipe) || Recipe.Contains(check))
|
||||
Recipe = lastProcessData.Recipe;
|
||||
else
|
||||
lastProcessData.Recipe = Recipe;
|
||||
if (string.IsNullOrEmpty(Title) || Title.Contains(check))
|
||||
Title = lastProcessData.Title;
|
||||
else
|
||||
lastProcessData.Title = Title;
|
||||
}
|
||||
|
||||
//fix title
|
||||
StringBuilder titleFixed = new();
|
||||
foreach (char c in Title)
|
||||
{
|
||||
if (char.IsLetterOrDigit(c) || c == '-' || c == '.')
|
||||
_ = titleFixed.Append(c);
|
||||
}
|
||||
Title = titleFixed.ToString();
|
||||
|
||||
//fix wafer
|
||||
StringBuilder waferFixed = new();
|
||||
foreach (char c in Wafer)
|
||||
{
|
||||
if (char.IsLetterOrDigit(c) || c == '-' || c == '.')
|
||||
_ = waferFixed.Append(c);
|
||||
}
|
||||
Wafer = waferFixed.ToString();
|
||||
|
||||
//create filename / unique id
|
||||
UniqueId = string.Concat(Title, '_', Wafer, '_', logistics.DateTimeFromSequence.ToString("yyyyMMddHHmmssffff"), '_', logistics.TotalSecondsSinceLastWriteTimeFromSequence);
|
||||
foreach (Detail detail in details)
|
||||
{
|
||||
detail.HeaderUniqueId = UniqueId;
|
||||
@ -423,7 +510,7 @@ public partial class ProcessData : IProcessData
|
||||
_Log.Debug(string.Format("Std Dev: {0}", StdDev));
|
||||
_Log.Debug(string.Format("Title: {0}", Title));
|
||||
_Log.Debug(string.Format("Wafer: {0}", Wafer));
|
||||
fileInfoCollection.Add(new FileInfo(logistics.ReportFullPath));
|
||||
fileInfoCollection.Add(logistics.FileInfo);
|
||||
_Details.AddRange(details);
|
||||
}
|
||||
|
||||
|
20
Adaptation/Infineon/Monitoring/MonA/ExtWebClient.cs
Normal file
20
Adaptation/Infineon/Monitoring/MonA/ExtWebClient.cs
Normal file
@ -0,0 +1,20 @@
|
||||
using System;
|
||||
using System.Net;
|
||||
|
||||
namespace Infineon.Monitoring.MonA;
|
||||
|
||||
#nullable disable
|
||||
#pragma warning disable SYSLIB0014
|
||||
|
||||
public class ExtWebClient : WebClient
|
||||
{
|
||||
protected override WebRequest GetWebRequest(Uri address)
|
||||
{
|
||||
WebRequest webRequest = base.GetWebRequest(address);
|
||||
if (webRequest != null)
|
||||
webRequest.PreAuthenticate = PreAuthenticate;
|
||||
return webRequest;
|
||||
}
|
||||
|
||||
public bool PreAuthenticate { get; set; }
|
||||
}
|
167
Adaptation/Infineon/Monitoring/MonA/IMonIn.cs
Normal file
167
Adaptation/Infineon/Monitoring/MonA/IMonIn.cs
Normal file
@ -0,0 +1,167 @@
|
||||
using System;
|
||||
|
||||
namespace Infineon.Monitoring.MonA;
|
||||
|
||||
public interface IMonIn
|
||||
{
|
||||
string SendStatus(string site, string resource, string stateName, State state);
|
||||
|
||||
string SendStatus(
|
||||
string site,
|
||||
DateTime timeStamp,
|
||||
string resource,
|
||||
string stateName,
|
||||
State state);
|
||||
|
||||
string SendStatus(
|
||||
string site,
|
||||
string resource,
|
||||
string stateName,
|
||||
State state,
|
||||
string description);
|
||||
|
||||
string SendStatus(
|
||||
string site,
|
||||
DateTime timeStamp,
|
||||
string resource,
|
||||
string stateName,
|
||||
State state,
|
||||
string description);
|
||||
|
||||
string SendStatus(
|
||||
string site,
|
||||
string resource,
|
||||
string subresource,
|
||||
string stateName,
|
||||
State state);
|
||||
|
||||
string SendStatus(
|
||||
string site,
|
||||
DateTime timeStamp,
|
||||
string resource,
|
||||
string subresource,
|
||||
string stateName,
|
||||
State state);
|
||||
|
||||
string SendStatus(
|
||||
string site,
|
||||
string resource,
|
||||
string subresource,
|
||||
string stateName,
|
||||
State state,
|
||||
string description);
|
||||
|
||||
string SendStatus(
|
||||
string site,
|
||||
DateTime? timeStamp,
|
||||
string resource,
|
||||
string subresource,
|
||||
string stateName,
|
||||
State state,
|
||||
string description);
|
||||
|
||||
string SendPerformanceMessage(
|
||||
string site,
|
||||
string resource,
|
||||
string performanceName,
|
||||
double value);
|
||||
|
||||
string SendPerformanceMessage(
|
||||
string site,
|
||||
DateTime? timeStamp,
|
||||
string resource,
|
||||
string performanceName,
|
||||
double value);
|
||||
|
||||
string SendPerformanceMessage(
|
||||
string site,
|
||||
string resource,
|
||||
string performanceName,
|
||||
double value,
|
||||
string description);
|
||||
|
||||
string SendPerformanceMessage(
|
||||
string site,
|
||||
DateTime? timeStamp,
|
||||
string resource,
|
||||
string performanceName,
|
||||
double value,
|
||||
string description);
|
||||
|
||||
string SendPerformanceMessage(
|
||||
string site,
|
||||
DateTime? timeStamp,
|
||||
string resource,
|
||||
string performanceName,
|
||||
double value,
|
||||
int? interval);
|
||||
|
||||
string SendPerformanceMessage(
|
||||
string site,
|
||||
string resource,
|
||||
DateTime? timeStamp,
|
||||
string performanceName,
|
||||
double value,
|
||||
string unit);
|
||||
|
||||
string SendPerformanceMessage(
|
||||
string site,
|
||||
DateTime? timeStamp,
|
||||
string resource,
|
||||
string performanceName,
|
||||
double value,
|
||||
string unit,
|
||||
int? interval);
|
||||
|
||||
string SendPerformanceMessage(
|
||||
string site,
|
||||
string resource,
|
||||
string subresource,
|
||||
string performanceName,
|
||||
double value);
|
||||
|
||||
string SendPerformanceMessage(
|
||||
string site,
|
||||
DateTime? timeStamp,
|
||||
string resource,
|
||||
string subresource,
|
||||
string performanceName,
|
||||
double value);
|
||||
|
||||
string SendPerformanceMessage(
|
||||
string site,
|
||||
string resource,
|
||||
string subresource,
|
||||
string performanceName,
|
||||
double value,
|
||||
string description);
|
||||
|
||||
string SendPerformanceMessage(
|
||||
string site,
|
||||
DateTime? timeStamp,
|
||||
string resource,
|
||||
string subresource,
|
||||
string performanceName,
|
||||
double value,
|
||||
int? interval);
|
||||
|
||||
string SendPerformanceMessage(
|
||||
string site,
|
||||
DateTime? timeStamp,
|
||||
string resource,
|
||||
string subresource,
|
||||
string performanceName,
|
||||
double value,
|
||||
string unit);
|
||||
|
||||
string SendPerformanceMessage(
|
||||
string site,
|
||||
DateTime? timeStamp,
|
||||
string resource,
|
||||
string subresource,
|
||||
string performanceName,
|
||||
double value,
|
||||
string description,
|
||||
string unit,
|
||||
int? interval);
|
||||
}
|
292
Adaptation/Infineon/Monitoring/MonA/MonIn.cs
Normal file
292
Adaptation/Infineon/Monitoring/MonA/MonIn.cs
Normal file
@ -0,0 +1,292 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
|
||||
namespace Infineon.Monitoring.MonA;
|
||||
|
||||
public class MonIn : IMonIn, IDisposable
|
||||
{
|
||||
private static readonly DateTime _Utc1970DateTime = new(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
|
||||
public const string MonInUrl = "http://moninhttp.{0}.infineon.com/input/text";
|
||||
private static readonly Dictionary<string, MonIn> _Instances = new();
|
||||
private readonly ExtWebClient _WebClient;
|
||||
private readonly string _MonInUrl;
|
||||
private static CultureInfo _CultureInfo;
|
||||
|
||||
public static MonIn GetInstance(string url = "http://moninhttp.{0}.infineon.com/input/text")
|
||||
{
|
||||
MonIn instance;
|
||||
if (_Instances.ContainsKey(url))
|
||||
{
|
||||
instance = _Instances[url];
|
||||
}
|
||||
else
|
||||
{
|
||||
lock (_Instances)
|
||||
{
|
||||
if (!_Instances.ContainsKey(url))
|
||||
{
|
||||
instance = new MonIn(url);
|
||||
_Instances.Add(url, instance);
|
||||
}
|
||||
else
|
||||
instance = _Instances[url];
|
||||
}
|
||||
}
|
||||
return instance;
|
||||
}
|
||||
|
||||
private MonIn(string url)
|
||||
{
|
||||
_WebClient = new ExtWebClient();
|
||||
_WebClient.Headers[HttpRequestHeader.ContentType] = "application/text";
|
||||
_WebClient.Encoding = Encoding.UTF8;
|
||||
_CultureInfo = new CultureInfo("en-US");
|
||||
_MonInUrl = url;
|
||||
}
|
||||
|
||||
public void SetBasicAuthentication(string username, string password)
|
||||
{
|
||||
_WebClient.PreAuthenticate = true;
|
||||
_WebClient.Headers[HttpRequestHeader.Authorization] = "Basic " + Convert.ToBase64String(Encoding.ASCII.GetBytes(username + ":" + password));
|
||||
}
|
||||
|
||||
public string SendStatus(string site, string resource, string stateName, State state) => SendStatus(site, new DateTime?(), resource, string.Empty, stateName, state, string.Empty);
|
||||
|
||||
public string SendStatus(
|
||||
string site,
|
||||
DateTime timeStamp,
|
||||
string resource,
|
||||
string stateName,
|
||||
State state) => SendStatus(site, new DateTime?(timeStamp), resource, string.Empty, stateName, state, string.Empty);
|
||||
|
||||
public string SendStatus(
|
||||
string site,
|
||||
string resource,
|
||||
string stateName,
|
||||
State state,
|
||||
string description) => SendStatus(site, new DateTime?(), resource, string.Empty, stateName, state, description);
|
||||
|
||||
public string SendStatus(
|
||||
string site,
|
||||
DateTime timeStamp,
|
||||
string resource,
|
||||
string stateName,
|
||||
State state,
|
||||
string description) => SendStatus(site, new DateTime?(timeStamp), resource, string.Empty, stateName, state, description);
|
||||
|
||||
public string SendStatus(
|
||||
string site,
|
||||
string resource,
|
||||
string subresource,
|
||||
string stateName,
|
||||
State state) => SendStatus(site, new DateTime?(), resource, subresource, stateName, state, string.Empty);
|
||||
|
||||
public string SendStatus(
|
||||
string site,
|
||||
DateTime timeStamp,
|
||||
string resource,
|
||||
string subresource,
|
||||
string stateName,
|
||||
State state) => SendStatus(site, new DateTime?(timeStamp), resource, subresource, stateName, state, string.Empty);
|
||||
|
||||
public string SendStatus(
|
||||
string site,
|
||||
string resource,
|
||||
string subresource,
|
||||
string stateName,
|
||||
State state,
|
||||
string description) => SendStatus(site, new DateTime?(), resource, subresource, stateName, state, description);
|
||||
|
||||
public string SendStatus(
|
||||
string site,
|
||||
DateTime? timeStamp,
|
||||
string resource,
|
||||
string subresource,
|
||||
string stateName,
|
||||
State state,
|
||||
string description)
|
||||
{
|
||||
string statusMessage = CreateStatusMessage(site, timeStamp, resource, subresource, stateName, state.ToString(), description);
|
||||
lock (_WebClient)
|
||||
return _WebClient.UploadString(string.Format(_MonInUrl, site), statusMessage);
|
||||
}
|
||||
|
||||
public string SendPerformanceMessage(
|
||||
string site,
|
||||
string resource,
|
||||
string performanceName,
|
||||
double value) => SendPerformanceMessage(site, new DateTime?(), resource, string.Empty, performanceName, value, string.Empty, string.Empty, new int?());
|
||||
|
||||
public string SendPerformanceMessage(
|
||||
string site,
|
||||
DateTime? timeStamp,
|
||||
string resource,
|
||||
string performanceName,
|
||||
double value) => SendPerformanceMessage(site, timeStamp, resource, string.Empty, performanceName, value, string.Empty, string.Empty, new int?());
|
||||
|
||||
public string SendPerformanceMessage(
|
||||
string site,
|
||||
string resource,
|
||||
string performanceName,
|
||||
double value,
|
||||
string description) => SendPerformanceMessage(site, new DateTime?(), resource, string.Empty, performanceName, value, description, string.Empty, new int?());
|
||||
|
||||
public string SendPerformanceMessage(
|
||||
string site,
|
||||
DateTime? timeStamp,
|
||||
string resource,
|
||||
string performanceName,
|
||||
double value,
|
||||
string description) => SendPerformanceMessage(site, timeStamp, resource, string.Empty, performanceName, value, description, string.Empty, new int?());
|
||||
|
||||
public string SendPerformanceMessage(
|
||||
string site,
|
||||
DateTime? timeStamp,
|
||||
string resource,
|
||||
string performanceName,
|
||||
double value,
|
||||
int? interval) => SendPerformanceMessage(site, timeStamp, resource, string.Empty, performanceName, value, string.Empty, string.Empty, interval);
|
||||
|
||||
public string SendPerformanceMessage(
|
||||
string site,
|
||||
string resource,
|
||||
DateTime? timeStamp,
|
||||
string performanceName,
|
||||
double value,
|
||||
string unit) => SendPerformanceMessage(site, timeStamp, resource, string.Empty, performanceName, value, string.Empty, unit, new int?());
|
||||
|
||||
public string SendPerformanceMessage(
|
||||
string site,
|
||||
DateTime? timeStamp,
|
||||
string resource,
|
||||
string performanceName,
|
||||
double value,
|
||||
string unit,
|
||||
int? interval) => SendPerformanceMessage(site, timeStamp, resource, string.Empty, performanceName, value, string.Empty, unit, interval);
|
||||
|
||||
public string SendPerformanceMessage(
|
||||
string site,
|
||||
string resource,
|
||||
string subresource,
|
||||
string performanceName,
|
||||
double value) => SendPerformanceMessage(site, new DateTime?(), resource, subresource, performanceName, value, string.Empty, string.Empty, new int?());
|
||||
|
||||
public string SendPerformanceMessage(
|
||||
string site,
|
||||
DateTime? timeStamp,
|
||||
string resource,
|
||||
string subresource,
|
||||
string performanceName,
|
||||
double value) => SendPerformanceMessage(site, timeStamp, resource, subresource, performanceName, value, string.Empty, string.Empty, new int?());
|
||||
|
||||
public string SendPerformanceMessage(
|
||||
string site,
|
||||
string resource,
|
||||
string subresource,
|
||||
string performanceName,
|
||||
double value,
|
||||
string description) => SendPerformanceMessage(site, new DateTime?(), resource, subresource, performanceName, value, description, string.Empty, new int?());
|
||||
|
||||
public string SendPerformanceMessage(
|
||||
string site,
|
||||
DateTime? timeStamp,
|
||||
string resource,
|
||||
string subresource,
|
||||
string performanceName,
|
||||
double value,
|
||||
int? interval) => SendPerformanceMessage(site, timeStamp, resource, subresource, performanceName, value, string.Empty, string.Empty, interval);
|
||||
|
||||
public string SendPerformanceMessage(
|
||||
string site,
|
||||
DateTime? timeStamp,
|
||||
string resource,
|
||||
string subresource,
|
||||
string performanceName,
|
||||
double value,
|
||||
string unit) => SendPerformanceMessage(site, timeStamp, resource, subresource, performanceName, value, string.Empty, unit, new int?());
|
||||
|
||||
public string SendPerformanceMessage(
|
||||
string site,
|
||||
DateTime? timeStamp,
|
||||
string resource,
|
||||
string subresource,
|
||||
string performanceName,
|
||||
double value,
|
||||
string description,
|
||||
string unit,
|
||||
int? interval)
|
||||
{
|
||||
string performanceMessage = CreatePerformanceMessage(site, timeStamp, resource, subresource, performanceName, value, description, unit, interval);
|
||||
lock (_WebClient)
|
||||
return _WebClient.UploadString(string.Format(_MonInUrl, site), performanceMessage);
|
||||
}
|
||||
|
||||
private static string CreateStatusMessage(
|
||||
string site,
|
||||
DateTime? timeStamp,
|
||||
string resource,
|
||||
string subresource,
|
||||
string stateName,
|
||||
string state,
|
||||
string description)
|
||||
{
|
||||
StringBuilder stringBuilder = new();
|
||||
if (string.IsNullOrEmpty(subresource))
|
||||
_ = stringBuilder.AppendFormat(_CultureInfo, "> {0} {1} \"{2}\" \"{3}\" {4} \n{5}", site.Trim(), timeStamp.HasValue ? GetDateTimeNowAsPosix(timeStamp.Value) : (object)"now", resource.Trim(), stateName.Trim(), state.Trim(), description.Trim());
|
||||
else
|
||||
_ = stringBuilder.AppendFormat(_CultureInfo, "> {0} {1} \"{2}\" \"{3}\" \"{4}\" {5} \n{6}", site.Trim(), timeStamp.HasValue ? GetDateTimeNowAsPosix(timeStamp.Value) : (object)"now", resource.Trim(), subresource.Trim(), stateName.Trim(), state.Trim(), description.Trim());
|
||||
return stringBuilder.ToString();
|
||||
}
|
||||
|
||||
private static string CreatePerformanceMessage(
|
||||
string site,
|
||||
DateTime? timeStamp,
|
||||
string resource,
|
||||
string subresource,
|
||||
string performanceName,
|
||||
double value,
|
||||
string description,
|
||||
string unit,
|
||||
int? interval)
|
||||
{
|
||||
StringBuilder stringBuilder = new();
|
||||
if (string.IsNullOrEmpty(subresource))
|
||||
{
|
||||
if (unit.Equals(string.Empty) && !interval.HasValue)
|
||||
_ = stringBuilder.AppendFormat(_CultureInfo, "> {0} {1} \"{2}\" \"{3}\" {4} \n{5}", site.Trim(), timeStamp.HasValue ? GetDateTimeNowAsPosix(timeStamp.Value) : (object)"now", resource.Trim(), performanceName.Trim(), value, description.Trim());
|
||||
else
|
||||
_ = stringBuilder.AppendFormat(_CultureInfo, "> {0} {1} \"{2}\" \"{3}\" {4} {5} {{interval={6}, unit={7}}}\n", site.Trim(), timeStamp.HasValue ? GetDateTimeNowAsPosix(timeStamp.Value) : (object)"now", resource.Trim(), performanceName.Trim(), value, description.Trim(), interval.HasValue ? interval.Value.ToString() : (object)string.Empty, unit.Trim());
|
||||
}
|
||||
else if (unit.Equals(string.Empty) && !interval.HasValue)
|
||||
_ = stringBuilder.AppendFormat(_CultureInfo, "> {0} {1} \"{2}\" \"{3}\" \"{4}\" {5} \n{6}", site.Trim(), timeStamp.HasValue ? GetDateTimeNowAsPosix(timeStamp.Value) : (object)"now", resource.Trim(), subresource.Trim(), performanceName.Trim(), value, description.Trim());
|
||||
else
|
||||
_ = stringBuilder.AppendFormat(_CultureInfo, "> {0} {1} \"{2}\" \"{3}\" \"{4}\" {5} {6} {{interval={7}, unit={8}}}\n", site.Trim(), timeStamp.HasValue ? GetDateTimeNowAsPosix(timeStamp.Value) : (object)"now", resource.Trim(), subresource.Trim(), performanceName.Trim(), value, description.Trim(), interval.HasValue ? interval.Value.ToString() : (object)string.Empty, unit.Trim());
|
||||
return stringBuilder.ToString();
|
||||
}
|
||||
|
||||
private static string GetDateTimeNowAsPosix(DateTime timeStamp)
|
||||
{
|
||||
if (timeStamp > DateTime.Now)
|
||||
timeStamp = DateTime.Now;
|
||||
return ((int)timeStamp.ToUniversalTime().Subtract(_Utc1970DateTime).TotalSeconds).ToString(CultureInfo.InvariantCulture);
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
KeyValuePair<string, MonIn> keyValuePair = new();
|
||||
foreach (KeyValuePair<string, MonIn> instance in _Instances)
|
||||
{
|
||||
if (instance.Value == this)
|
||||
{
|
||||
keyValuePair = instance;
|
||||
break;
|
||||
}
|
||||
}
|
||||
_ = _Instances.Remove(keyValuePair.Key);
|
||||
_WebClient?.Dispose();
|
||||
}
|
||||
|
||||
}
|
11
Adaptation/Infineon/Monitoring/MonA/State.cs
Normal file
11
Adaptation/Infineon/Monitoring/MonA/State.cs
Normal file
@ -0,0 +1,11 @@
|
||||
namespace Infineon.Monitoring.MonA;
|
||||
|
||||
public enum State
|
||||
{
|
||||
Up,
|
||||
Ok,
|
||||
Warning,
|
||||
Critical,
|
||||
Down,
|
||||
Unknown,
|
||||
}
|
@ -15,6 +15,7 @@
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<VSTestLogger>trx</VSTestLogger>
|
||||
<VSTestCollect>XPlat Code Coverage</VSTestCollect>
|
||||
<VSTestResultsDirectory>../../../../MET08THFTIRQS408M/05_TestResults/TestResults</VSTestResultsDirectory>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
@ -62,7 +63,6 @@
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="FFMpegCore" Version="4.8.0" />
|
||||
<PackageReference Include="Infineon.Monitoring.MonA" Version="2.0.0" />
|
||||
<PackageReference Include="Infineon.Yoda" Version="5.4.1" />
|
||||
<PackageReference Include="Instances" Version="2.0.0" />
|
||||
<PackageReference Include="RoboSharp" Version="1.2.7" />
|
||||
|
@ -54,6 +54,7 @@ public class FileRead : Properties.IFileRead
|
||||
string Properties.IFileRead.EventName => _EventName;
|
||||
string Properties.IFileRead.MesEntity => _MesEntity;
|
||||
bool Properties.IFileRead.IsEAFHosted => _IsEAFHosted;
|
||||
bool Properties.IFileRead.IsDuplicator => _IsDuplicator;
|
||||
string Properties.IFileRead.EquipmentType => _EquipmentType;
|
||||
string Properties.IFileRead.ReportFullPath => _ReportFullPath;
|
||||
string Properties.IFileRead.CellInstanceName => _CellInstanceName;
|
||||
|
@ -9,34 +9,46 @@ namespace Adaptation.Shared;
|
||||
public class Logistics : ILogistics
|
||||
{
|
||||
|
||||
public object NullData { get; private set; }
|
||||
public string JobID { get; private set; } //CellName
|
||||
public long Sequence { get; private set; } //Ticks
|
||||
public DateTime DateTimeFromSequence { get; private set; }
|
||||
public double TotalSecondsSinceLastWriteTimeFromSequence { get; private set; }
|
||||
public string MesEntity { get; private set; } //SPC
|
||||
public string ReportFullPath { get; private set; } //Extract file
|
||||
public string ProcessJobID { get; set; } //Reactor (duplicate but I want it in the logistics)
|
||||
public string MID { get; set; } //Lot & Pocket || Lot
|
||||
public List<string> Tags { get; set; }
|
||||
public List<string> Logistics1 { get; set; }
|
||||
public List<Logistics2> Logistics2 { get; set; }
|
||||
protected readonly DateTime _DateTimeFromSequence;
|
||||
protected readonly FileInfo _FileInfo;
|
||||
protected readonly string _JobID;
|
||||
protected readonly List<string> _Logistics1;
|
||||
protected readonly List<Logistics2> _Logistics2;
|
||||
protected string _MID;
|
||||
protected readonly string _MesEntity;
|
||||
protected readonly object _NullData;
|
||||
protected string _ProcessJobID;
|
||||
protected readonly string _ReportFullPath;
|
||||
protected readonly long _Sequence;
|
||||
protected readonly double _TotalSecondsSinceLastWriteTimeFromSequence;
|
||||
|
||||
public DateTime DateTimeFromSequence => _DateTimeFromSequence;
|
||||
public FileInfo FileInfo => _FileInfo;
|
||||
public string JobID => _JobID;
|
||||
public List<string> Logistics1 => _Logistics1;
|
||||
public List<Logistics2> Logistics2 => _Logistics2;
|
||||
public string MID => _MID;
|
||||
public string MesEntity => _MesEntity;
|
||||
public object NullData => _NullData;
|
||||
public string ProcessJobID => _ProcessJobID;
|
||||
public string ReportFullPath => _ReportFullPath;
|
||||
public long Sequence => _Sequence;
|
||||
public double TotalSecondsSinceLastWriteTimeFromSequence => _TotalSecondsSinceLastWriteTimeFromSequence;
|
||||
|
||||
public Logistics(IFileRead fileRead)
|
||||
{
|
||||
DateTime dateTime = DateTime.Now;
|
||||
NullData = null;
|
||||
Sequence = dateTime.Ticks;
|
||||
DateTimeFromSequence = dateTime;
|
||||
JobID = fileRead.CellInstanceName;
|
||||
TotalSecondsSinceLastWriteTimeFromSequence = (DateTime.Now - dateTime).TotalSeconds;
|
||||
MesEntity = DefaultMesEntity(dateTime);
|
||||
ReportFullPath = string.Empty;
|
||||
ProcessJobID = nameof(ProcessJobID);
|
||||
MID = nameof(MID);
|
||||
Tags = new List<string>();
|
||||
Logistics1 = new string[] { string.Concat("LOGISTICS_1", '\t', "A_JOBID=", JobID, ";A_MES_ENTITY=", MesEntity, ";") }.ToList();
|
||||
Logistics2 = new List<Logistics2>();
|
||||
_NullData = null;
|
||||
_Sequence = dateTime.Ticks;
|
||||
_DateTimeFromSequence = dateTime;
|
||||
_JobID = fileRead.CellInstanceName;
|
||||
_TotalSecondsSinceLastWriteTimeFromSequence = (DateTime.Now - dateTime).TotalSeconds;
|
||||
_MesEntity = DefaultMesEntity(dateTime);
|
||||
_ReportFullPath = string.Empty;
|
||||
_ProcessJobID = nameof(ProcessJobID);
|
||||
_MID = nameof(MID);
|
||||
_Logistics1 = new string[] { string.Concat("LOGISTICS_1", '\t', "A_JOBID=", JobID, ";A_MES_ENTITY=", MesEntity, ";") }.ToList();
|
||||
_Logistics2 = new List<Logistics2>();
|
||||
}
|
||||
|
||||
public Logistics(IFileRead fileRead, string reportFullPath, bool useSplitForMID, int? fileInfoLength = null)
|
||||
@ -45,19 +57,19 @@ public class Logistics : ILogistics
|
||||
throw new Exception();
|
||||
if (string.IsNullOrEmpty(fileRead.MesEntity))
|
||||
throw new Exception();
|
||||
NullData = fileRead.NullData;
|
||||
FileInfo fileInfo = new(reportFullPath);
|
||||
DateTime dateTime = fileInfo.LastWriteTime;
|
||||
if (fileInfoLength.HasValue && fileInfo.Length < fileInfoLength.Value)
|
||||
_NullData = fileRead.NullData;
|
||||
_FileInfo = new(reportFullPath);
|
||||
DateTime dateTime = _FileInfo.LastWriteTime;
|
||||
if (fileInfoLength.HasValue && _FileInfo.Length < fileInfoLength.Value)
|
||||
dateTime = dateTime.AddTicks(-1);
|
||||
JobID = fileRead.CellInstanceName;
|
||||
Sequence = dateTime.Ticks;
|
||||
DateTimeFromSequence = dateTime;
|
||||
TotalSecondsSinceLastWriteTimeFromSequence = (DateTime.Now - dateTime).TotalSeconds;
|
||||
MesEntity = fileRead.MesEntity;
|
||||
ReportFullPath = fileInfo.FullName;
|
||||
ProcessJobID = nameof(ProcessJobID);
|
||||
string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(fileInfo.FullName);
|
||||
_JobID = fileRead.CellInstanceName;
|
||||
_Sequence = dateTime.Ticks;
|
||||
_DateTimeFromSequence = dateTime;
|
||||
_TotalSecondsSinceLastWriteTimeFromSequence = (DateTime.Now - dateTime).TotalSeconds;
|
||||
_MesEntity = fileRead.MesEntity;
|
||||
_ReportFullPath = _FileInfo.FullName;
|
||||
_ProcessJobID = nameof(ProcessJobID);
|
||||
string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(_FileInfo.FullName);
|
||||
if (useSplitForMID)
|
||||
{
|
||||
if (fileNameWithoutExtension.IndexOf(".") > -1)
|
||||
@ -67,10 +79,9 @@ public class Logistics : ILogistics
|
||||
if (fileNameWithoutExtension.IndexOf("-") > -1)
|
||||
fileNameWithoutExtension = fileNameWithoutExtension.Split('-')[0].Trim();
|
||||
}
|
||||
MID = string.Concat(fileNameWithoutExtension.Substring(0, 1).ToUpper(), fileNameWithoutExtension.Substring(1).ToLower());
|
||||
Tags = new List<string>();
|
||||
Logistics1 = new string[] { string.Concat("LOGISTICS_1", '\t', "A_JOBID=", JobID, ";A_MES_ENTITY=", MesEntity, ";") }.ToList();
|
||||
Logistics2 = new List<Logistics2>();
|
||||
_MID = string.Concat(fileNameWithoutExtension.Substring(0, 1).ToUpper(), fileNameWithoutExtension.Substring(1).ToLower());
|
||||
_Logistics1 = new string[] { string.Concat("LOGISTICS_1", '\t', "A_JOBID=", JobID, ";A_MES_ENTITY=", MesEntity, ";") }.ToList();
|
||||
_Logistics2 = new List<Logistics2>();
|
||||
}
|
||||
|
||||
public Logistics(string reportFullPath, string logistics)
|
||||
@ -78,57 +89,57 @@ public class Logistics : ILogistics
|
||||
string key;
|
||||
DateTime dateTime;
|
||||
string[] segments;
|
||||
Logistics1 = logistics.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries).ToList();
|
||||
_FileInfo = new(reportFullPath);
|
||||
_Logistics1 = logistics.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries).ToList();
|
||||
if (!Logistics1.Any() || !Logistics1[0].StartsWith("LOGISTICS_1"))
|
||||
{
|
||||
NullData = null;
|
||||
JobID = "null";
|
||||
dateTime = new FileInfo(reportFullPath).LastWriteTime;
|
||||
Sequence = dateTime.Ticks;
|
||||
DateTimeFromSequence = dateTime;
|
||||
TotalSecondsSinceLastWriteTimeFromSequence = (DateTime.Now - dateTime).TotalSeconds;
|
||||
MesEntity = DefaultMesEntity(dateTime);
|
||||
ReportFullPath = reportFullPath;
|
||||
ProcessJobID = "R##";
|
||||
MID = "null";
|
||||
Tags = new List<string>();
|
||||
Logistics1 = new string[] { string.Concat("LOGISTICS_1", '\t', "A_JOBID=", JobID, ";A_MES_ENTITY=", MesEntity, ";") }.ToList();
|
||||
Logistics2 = new List<Logistics2>();
|
||||
_NullData = null;
|
||||
_JobID = "null";
|
||||
dateTime = _FileInfo.LastWriteTime;
|
||||
_Sequence = dateTime.Ticks;
|
||||
_DateTimeFromSequence = dateTime;
|
||||
_TotalSecondsSinceLastWriteTimeFromSequence = (DateTime.Now - dateTime).TotalSeconds;
|
||||
_MesEntity = DefaultMesEntity(dateTime);
|
||||
_ReportFullPath = reportFullPath;
|
||||
_ProcessJobID = "R##";
|
||||
_MID = "null";
|
||||
_Logistics1 = new string[] { string.Concat("LOGISTICS_1", '\t', "A_JOBID=", JobID, ";A_MES_ENTITY=", MesEntity, ";") }.ToList();
|
||||
_Logistics2 = new List<Logistics2>();
|
||||
}
|
||||
else
|
||||
{
|
||||
string logistics1Line1 = Logistics1[0];
|
||||
key = "NULL_DATA=";
|
||||
if (!logistics1Line1.Contains(key))
|
||||
NullData = null;
|
||||
_NullData = null;
|
||||
else
|
||||
{
|
||||
segments = logistics1Line1.Split(new string[] { key }, StringSplitOptions.RemoveEmptyEntries);
|
||||
NullData = segments[1].Split(';')[0];
|
||||
_NullData = segments[1].Split(';')[0];
|
||||
}
|
||||
key = "JOBID=";
|
||||
if (!logistics1Line1.Contains(key))
|
||||
JobID = "null";
|
||||
_JobID = "null";
|
||||
else
|
||||
{
|
||||
segments = logistics1Line1.Split(new string[] { key }, StringSplitOptions.RemoveEmptyEntries);
|
||||
JobID = segments[1].Split(';')[0];
|
||||
_JobID = segments[1].Split(';')[0];
|
||||
}
|
||||
key = "SEQUENCE=";
|
||||
if (!logistics1Line1.Contains(key))
|
||||
dateTime = new FileInfo(reportFullPath).LastWriteTime;
|
||||
dateTime = _FileInfo.LastWriteTime;
|
||||
else
|
||||
{
|
||||
segments = logistics1Line1.Split(new string[] { key }, StringSplitOptions.RemoveEmptyEntries);
|
||||
if (!long.TryParse(segments[1].Split(';')[0].Split('.')[0], out long sequence) || sequence < new DateTime(1999, 1, 1).Ticks)
|
||||
dateTime = new FileInfo(reportFullPath).LastWriteTime;
|
||||
dateTime = _FileInfo.LastWriteTime;
|
||||
else
|
||||
dateTime = new DateTime(sequence);
|
||||
}
|
||||
Sequence = dateTime.Ticks;
|
||||
DateTimeFromSequence = dateTime;
|
||||
TotalSecondsSinceLastWriteTimeFromSequence = (DateTime.Now - dateTime).TotalSeconds;
|
||||
DateTime lastWriteTime = new FileInfo(reportFullPath).LastWriteTime;
|
||||
_Sequence = dateTime.Ticks;
|
||||
_DateTimeFromSequence = dateTime;
|
||||
_TotalSecondsSinceLastWriteTimeFromSequence = (DateTime.Now - dateTime).TotalSeconds;
|
||||
DateTime lastWriteTime = _FileInfo.LastWriteTime;
|
||||
if (TotalSecondsSinceLastWriteTimeFromSequence > 600)
|
||||
{
|
||||
if (lastWriteTime != dateTime)
|
||||
@ -138,33 +149,32 @@ public class Logistics : ILogistics
|
||||
}
|
||||
key = "MES_ENTITY=";
|
||||
if (!logistics1Line1.Contains(key))
|
||||
MesEntity = DefaultMesEntity(dateTime);
|
||||
_MesEntity = DefaultMesEntity(dateTime);
|
||||
else
|
||||
{
|
||||
segments = logistics1Line1.Split(new string[] { key }, StringSplitOptions.RemoveEmptyEntries);
|
||||
MesEntity = segments[1].Split(';')[0];
|
||||
_MesEntity = segments[1].Split(';')[0];
|
||||
}
|
||||
ReportFullPath = reportFullPath;
|
||||
_ReportFullPath = reportFullPath;
|
||||
key = "PROCESS_JOBID=";
|
||||
if (!logistics1Line1.Contains(key))
|
||||
ProcessJobID = "R##";
|
||||
_ProcessJobID = "R##";
|
||||
else
|
||||
{
|
||||
segments = logistics1Line1.Split(new string[] { key }, StringSplitOptions.RemoveEmptyEntries);
|
||||
ProcessJobID = segments[1].Split(';')[0];
|
||||
_ProcessJobID = segments[1].Split(';')[0];
|
||||
}
|
||||
key = "MID=";
|
||||
if (!logistics1Line1.Contains(key))
|
||||
MID = "null";
|
||||
_MID = "null";
|
||||
else
|
||||
{
|
||||
segments = logistics1Line1.Split(new string[] { key }, StringSplitOptions.RemoveEmptyEntries);
|
||||
MID = segments[1].Split(';')[0];
|
||||
_MID = segments[1].Split(';')[0];
|
||||
}
|
||||
}
|
||||
Logistics2 logistics2;
|
||||
Tags = new List<string>();
|
||||
Logistics2 = new List<Logistics2>();
|
||||
_Logistics2 = new List<Logistics2>();
|
||||
for (int i = 1; i < Logistics1.Count; i++)
|
||||
{
|
||||
if (Logistics1[i].StartsWith("LOGISTICS_2"))
|
||||
@ -180,29 +190,12 @@ public class Logistics : ILogistics
|
||||
}
|
||||
}
|
||||
|
||||
public Logistics ShallowCopy() => (Logistics)MemberwiseClone();
|
||||
|
||||
private static string DefaultMesEntity(DateTime dateTime) => string.Concat(dateTime.Ticks, "_MES_ENTITY");
|
||||
|
||||
internal string GetLotViaMostCommonMethod() => MID.Substring(0, MID.Length - 2);
|
||||
|
||||
internal string GetPocketNumberViaMostCommonMethod() => MID.Substring(MID.Length - 2);
|
||||
|
||||
internal void Update(string dateTime, string processJobID, string mid)
|
||||
internal void Update(string mid, string processJobID)
|
||||
{
|
||||
if (!DateTime.TryParse(dateTime, out DateTime dateTimeCasted))
|
||||
dateTimeCasted = DateTime.Now;
|
||||
NullData = null;
|
||||
//JobID = Description.GetCellName();
|
||||
Sequence = dateTimeCasted.Ticks;
|
||||
DateTimeFromSequence = dateTimeCasted;
|
||||
TotalSecondsSinceLastWriteTimeFromSequence = (DateTime.Now - dateTimeCasted).TotalSeconds;
|
||||
//MesEntity = DefaultMesEntity(dateTime);
|
||||
//ReportFullPath = string.Empty;
|
||||
ProcessJobID = processJobID;
|
||||
MID = mid;
|
||||
Tags = new List<string>();
|
||||
Logistics1 = new string[] { string.Concat("LOGISTICS_1", '\t', "A_JOBID=", JobID, ";A_MES_ENTITY=", MesEntity, ";") }.ToList();
|
||||
Logistics2 = new List<Logistics2>();
|
||||
_MID = mid;
|
||||
_ProcessJobID = processJobID;
|
||||
}
|
||||
|
||||
}
|
@ -12,8 +12,6 @@ namespace Adaptation.Shared;
|
||||
public class ProcessDataStandardFormat
|
||||
{
|
||||
|
||||
public const string RecordStart = "RECORD_START";
|
||||
|
||||
public enum SearchFor
|
||||
{
|
||||
EquipmentIntegration = 1,
|
||||
|
@ -7,6 +7,7 @@ public interface IFileRead
|
||||
string MesEntity { get; }
|
||||
bool IsEAFHosted { get; }
|
||||
string EventName { get; }
|
||||
bool IsDuplicator { get; }
|
||||
string EquipmentType { get; }
|
||||
string ReportFullPath { get; }
|
||||
string CellInstanceName { get; }
|
||||
|
@ -1,22 +1,23 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
|
||||
namespace Adaptation.Shared.Properties;
|
||||
|
||||
public interface ILogistics
|
||||
{
|
||||
|
||||
public object NullData { get; }
|
||||
public string JobID { get; } //CellName
|
||||
public long Sequence { get; } //Ticks
|
||||
public DateTime DateTimeFromSequence { get; }
|
||||
public FileInfo FileInfo { get; }
|
||||
public string JobID { get; }
|
||||
public List<string> Logistics1 { get; }
|
||||
public List<Logistics2> Logistics2 { get; }
|
||||
public string MID { get; }
|
||||
public string MesEntity { get; }
|
||||
public object NullData { get; }
|
||||
public string ProcessJobID { get; }
|
||||
public string ReportFullPath { get; }
|
||||
public long Sequence { get; }
|
||||
public double TotalSecondsSinceLastWriteTimeFromSequence { get; }
|
||||
public string MesEntity { get; } //SPC
|
||||
public string ReportFullPath { get; } //Extract file
|
||||
public string ProcessJobID { get; set; } //Reactor (duplicate but I want it in the logistics)
|
||||
public string MID { get; set; } //Lot & Pocket || Lot
|
||||
public List<string> Tags { get; set; }
|
||||
public List<string> Logistics1 { get; set; }
|
||||
public List<Logistics2> Logistics2 { get; set; }
|
||||
|
||||
}
|
@ -15,15 +15,16 @@ public class BIORAD2 : EAFLoggingUnitTesting
|
||||
#pragma warning disable CA2254
|
||||
#pragma warning disable IDE0060
|
||||
|
||||
internal static string DummyRoot { get; private set; }
|
||||
internal static BIORAD2 EAFLoggingUnitTesting { get; private set; }
|
||||
|
||||
public BIORAD2() : base(testContext: null, declaringType: null, skipEquipmentDictionary: false)
|
||||
public BIORAD2() : base(DummyRoot, testContext: null, declaringType: null, skipEquipmentDictionary: false)
|
||||
{
|
||||
if (EAFLoggingUnitTesting is null)
|
||||
throw new Exception();
|
||||
}
|
||||
|
||||
public BIORAD2(TestContext testContext) : base(testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false)
|
||||
public BIORAD2(TestContext testContext) : base(DummyRoot, testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false)
|
||||
{
|
||||
}
|
||||
|
||||
@ -47,6 +48,9 @@ public class BIORAD2 : EAFLoggingUnitTesting
|
||||
EAFLoggingUnitTesting.Dispose();
|
||||
}
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_36_3__BIORAD2__QS408M()
|
||||
{
|
||||
|
@ -15,15 +15,16 @@ public class BIORAD3 : EAFLoggingUnitTesting
|
||||
#pragma warning disable CA2254
|
||||
#pragma warning disable IDE0060
|
||||
|
||||
internal static string DummyRoot { get; private set; }
|
||||
internal static BIORAD3 EAFLoggingUnitTesting { get; private set; }
|
||||
|
||||
public BIORAD3() : base(testContext: null, declaringType: null, skipEquipmentDictionary: false)
|
||||
public BIORAD3() : base(DummyRoot, testContext: null, declaringType: null, skipEquipmentDictionary: false)
|
||||
{
|
||||
if (EAFLoggingUnitTesting is null)
|
||||
throw new Exception();
|
||||
}
|
||||
|
||||
public BIORAD3(TestContext testContext) : base(testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false)
|
||||
public BIORAD3(TestContext testContext) : base(DummyRoot, testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false)
|
||||
{
|
||||
}
|
||||
|
||||
@ -47,6 +48,9 @@ public class BIORAD3 : EAFLoggingUnitTesting
|
||||
EAFLoggingUnitTesting.Dispose();
|
||||
}
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_36_3__BIORAD3__QS408M()
|
||||
{
|
||||
|
@ -15,15 +15,16 @@ public class MET08THFTIRQS408M : EAFLoggingUnitTesting
|
||||
#pragma warning disable CA2254
|
||||
#pragma warning disable IDE0060
|
||||
|
||||
internal static string DummyRoot { get; private set; }
|
||||
internal static MET08THFTIRQS408M EAFLoggingUnitTesting { get; private set; }
|
||||
|
||||
public MET08THFTIRQS408M() : base(testContext: null, declaringType: null, skipEquipmentDictionary: false)
|
||||
public MET08THFTIRQS408M() : base(DummyRoot, testContext: null, declaringType: null, skipEquipmentDictionary: false)
|
||||
{
|
||||
if (EAFLoggingUnitTesting is null)
|
||||
throw new Exception();
|
||||
}
|
||||
|
||||
public MET08THFTIRQS408M(TestContext testContext) : base(testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false)
|
||||
public MET08THFTIRQS408M(TestContext testContext) : base(DummyRoot, testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false)
|
||||
{
|
||||
}
|
||||
|
||||
@ -47,6 +48,9 @@ public class MET08THFTIRQS408M : EAFLoggingUnitTesting
|
||||
EAFLoggingUnitTesting.Dispose();
|
||||
}
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_36_3__MET08THFTIRQS408M__MET08THFTIRQS408M()
|
||||
{
|
||||
@ -57,6 +61,9 @@ public class MET08THFTIRQS408M : EAFLoggingUnitTesting
|
||||
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||
}
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_36_3__MET08THFTIRQS408M__MET08THFTIRQS408M_()
|
||||
{
|
||||
@ -67,6 +74,9 @@ public class MET08THFTIRQS408M : EAFLoggingUnitTesting
|
||||
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||
}
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_36_3__MET08THFTIRQS408M__MET08THFTIRQS408M__()
|
||||
{
|
||||
@ -77,6 +87,9 @@ public class MET08THFTIRQS408M : EAFLoggingUnitTesting
|
||||
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||
}
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_36_3__MET08THFTIRQS408M__MET08THFTIRQS408M___()
|
||||
{
|
||||
@ -87,6 +100,9 @@ public class MET08THFTIRQS408M : EAFLoggingUnitTesting
|
||||
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||
}
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_36_3__MET08THFTIRQS408M__MET08THFTIRQS408M____()
|
||||
{
|
||||
@ -97,6 +113,9 @@ public class MET08THFTIRQS408M : EAFLoggingUnitTesting
|
||||
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||
}
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_36_3__MET08THFTIRQS408M__MET08THFTIRQS408M_____()
|
||||
{
|
||||
@ -107,6 +126,9 @@ public class MET08THFTIRQS408M : EAFLoggingUnitTesting
|
||||
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||
}
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_36_3__MET08THFTIRQS408M__MET08THFTIRQS408M______()
|
||||
{
|
||||
@ -117,6 +139,9 @@ public class MET08THFTIRQS408M : EAFLoggingUnitTesting
|
||||
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||
}
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_36_3__MET08THFTIRQS408M__MET08THFTIRQS408M_______()
|
||||
{
|
||||
@ -127,6 +152,9 @@ public class MET08THFTIRQS408M : EAFLoggingUnitTesting
|
||||
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||
}
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_36_3__MET08THFTIRQS408M__MET08THFTIRQS408M________()
|
||||
{
|
||||
|
@ -15,15 +15,16 @@ public class BIORAD2 : EAFLoggingUnitTesting
|
||||
#pragma warning disable CA2254
|
||||
#pragma warning disable IDE0060
|
||||
|
||||
internal static string DummyRoot { get; private set; }
|
||||
internal static BIORAD2 EAFLoggingUnitTesting { get; private set; }
|
||||
|
||||
public BIORAD2() : base(testContext: null, declaringType: null, skipEquipmentDictionary: false)
|
||||
public BIORAD2() : base(DummyRoot, testContext: null, declaringType: null, skipEquipmentDictionary: false)
|
||||
{
|
||||
if (EAFLoggingUnitTesting is null)
|
||||
throw new Exception();
|
||||
}
|
||||
|
||||
public BIORAD2(TestContext testContext) : base(testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false)
|
||||
public BIORAD2(TestContext testContext) : base(DummyRoot, testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false)
|
||||
{
|
||||
}
|
||||
|
||||
@ -47,6 +48,9 @@ public class BIORAD2 : EAFLoggingUnitTesting
|
||||
EAFLoggingUnitTesting.Dispose();
|
||||
}
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_39_0__BIORAD2__QS408M()
|
||||
{
|
||||
|
@ -15,15 +15,16 @@ public class BIORAD3 : EAFLoggingUnitTesting
|
||||
#pragma warning disable CA2254
|
||||
#pragma warning disable IDE0060
|
||||
|
||||
internal static string DummyRoot { get; private set; }
|
||||
internal static BIORAD3 EAFLoggingUnitTesting { get; private set; }
|
||||
|
||||
public BIORAD3() : base(testContext: null, declaringType: null, skipEquipmentDictionary: false)
|
||||
public BIORAD3() : base(DummyRoot, testContext: null, declaringType: null, skipEquipmentDictionary: false)
|
||||
{
|
||||
if (EAFLoggingUnitTesting is null)
|
||||
throw new Exception();
|
||||
}
|
||||
|
||||
public BIORAD3(TestContext testContext) : base(testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false)
|
||||
public BIORAD3(TestContext testContext) : base(DummyRoot, testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false)
|
||||
{
|
||||
}
|
||||
|
||||
@ -47,6 +48,9 @@ public class BIORAD3 : EAFLoggingUnitTesting
|
||||
EAFLoggingUnitTesting.Dispose();
|
||||
}
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_39_0__BIORAD3__QS408M()
|
||||
{
|
||||
|
@ -15,15 +15,16 @@ public class MET08THFTIRQS408M : EAFLoggingUnitTesting
|
||||
#pragma warning disable CA2254
|
||||
#pragma warning disable IDE0060
|
||||
|
||||
internal static string DummyRoot { get; private set; }
|
||||
internal static MET08THFTIRQS408M EAFLoggingUnitTesting { get; private set; }
|
||||
|
||||
public MET08THFTIRQS408M() : base(testContext: null, declaringType: null, skipEquipmentDictionary: false)
|
||||
public MET08THFTIRQS408M() : base(DummyRoot, testContext: null, declaringType: null, skipEquipmentDictionary: false)
|
||||
{
|
||||
if (EAFLoggingUnitTesting is null)
|
||||
throw new Exception();
|
||||
}
|
||||
|
||||
public MET08THFTIRQS408M(TestContext testContext) : base(testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false)
|
||||
public MET08THFTIRQS408M(TestContext testContext) : base(DummyRoot, testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false)
|
||||
{
|
||||
}
|
||||
|
||||
@ -47,6 +48,9 @@ public class MET08THFTIRQS408M : EAFLoggingUnitTesting
|
||||
EAFLoggingUnitTesting.Dispose();
|
||||
}
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_39_0__MET08THFTIRQS408M__MET08THFTIRQS408M()
|
||||
{
|
||||
@ -57,6 +61,9 @@ public class MET08THFTIRQS408M : EAFLoggingUnitTesting
|
||||
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||
}
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_39_0__MET08THFTIRQS408M__MET08THFTIRQS408M_()
|
||||
{
|
||||
@ -67,6 +74,9 @@ public class MET08THFTIRQS408M : EAFLoggingUnitTesting
|
||||
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||
}
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_39_0__MET08THFTIRQS408M__MET08THFTIRQS408M__()
|
||||
{
|
||||
@ -77,6 +87,9 @@ public class MET08THFTIRQS408M : EAFLoggingUnitTesting
|
||||
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||
}
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_39_0__MET08THFTIRQS408M__MET08THFTIRQS408M___()
|
||||
{
|
||||
@ -87,6 +100,9 @@ public class MET08THFTIRQS408M : EAFLoggingUnitTesting
|
||||
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||
}
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_39_0__MET08THFTIRQS408M__MET08THFTIRQS408M____()
|
||||
{
|
||||
@ -97,6 +113,9 @@ public class MET08THFTIRQS408M : EAFLoggingUnitTesting
|
||||
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||
}
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_39_0__MET08THFTIRQS408M__MET08THFTIRQS408M_____()
|
||||
{
|
||||
@ -107,6 +126,9 @@ public class MET08THFTIRQS408M : EAFLoggingUnitTesting
|
||||
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||
}
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_39_0__MET08THFTIRQS408M__MET08THFTIRQS408M______()
|
||||
{
|
||||
@ -117,6 +139,9 @@ public class MET08THFTIRQS408M : EAFLoggingUnitTesting
|
||||
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||
}
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_39_0__MET08THFTIRQS408M__MET08THFTIRQS408M_______()
|
||||
{
|
||||
@ -127,6 +152,9 @@ public class MET08THFTIRQS408M : EAFLoggingUnitTesting
|
||||
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||
}
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_39_0__MET08THFTIRQS408M__MET08THFTIRQS408M________()
|
||||
{
|
||||
|
@ -15,15 +15,16 @@ public class BIORAD2 : EAFLoggingUnitTesting
|
||||
#pragma warning disable CA2254
|
||||
#pragma warning disable IDE0060
|
||||
|
||||
internal static string DummyRoot { get; private set; }
|
||||
internal static BIORAD2 EAFLoggingUnitTesting { get; private set; }
|
||||
|
||||
public BIORAD2() : base(testContext: null, declaringType: null, skipEquipmentDictionary: false)
|
||||
public BIORAD2() : base(DummyRoot, testContext: null, declaringType: null, skipEquipmentDictionary: false)
|
||||
{
|
||||
if (EAFLoggingUnitTesting is null)
|
||||
throw new Exception();
|
||||
}
|
||||
|
||||
public BIORAD2(TestContext testContext) : base(testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false)
|
||||
public BIORAD2(TestContext testContext) : base(DummyRoot, testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false)
|
||||
{
|
||||
}
|
||||
|
||||
@ -47,6 +48,9 @@ public class BIORAD2 : EAFLoggingUnitTesting
|
||||
EAFLoggingUnitTesting.Dispose();
|
||||
}
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_43_0__BIORAD2__QS408M()
|
||||
{
|
||||
|
@ -15,15 +15,16 @@ public class BIORAD3 : EAFLoggingUnitTesting
|
||||
#pragma warning disable CA2254
|
||||
#pragma warning disable IDE0060
|
||||
|
||||
internal static string DummyRoot { get; private set; }
|
||||
internal static BIORAD3 EAFLoggingUnitTesting { get; private set; }
|
||||
|
||||
public BIORAD3() : base(testContext: null, declaringType: null, skipEquipmentDictionary: false)
|
||||
public BIORAD3() : base(DummyRoot, testContext: null, declaringType: null, skipEquipmentDictionary: false)
|
||||
{
|
||||
if (EAFLoggingUnitTesting is null)
|
||||
throw new Exception();
|
||||
}
|
||||
|
||||
public BIORAD3(TestContext testContext) : base(testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false)
|
||||
public BIORAD3(TestContext testContext) : base(DummyRoot, testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false)
|
||||
{
|
||||
}
|
||||
|
||||
@ -47,6 +48,9 @@ public class BIORAD3 : EAFLoggingUnitTesting
|
||||
EAFLoggingUnitTesting.Dispose();
|
||||
}
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_43_0__BIORAD3__QS408M()
|
||||
{
|
||||
|
@ -15,15 +15,16 @@ public class MET08THFTIRQS408M : EAFLoggingUnitTesting
|
||||
#pragma warning disable CA2254
|
||||
#pragma warning disable IDE0060
|
||||
|
||||
internal static string DummyRoot { get; private set; }
|
||||
internal static MET08THFTIRQS408M EAFLoggingUnitTesting { get; private set; }
|
||||
|
||||
public MET08THFTIRQS408M() : base(testContext: null, declaringType: null, skipEquipmentDictionary: false)
|
||||
public MET08THFTIRQS408M() : base(DummyRoot, testContext: null, declaringType: null, skipEquipmentDictionary: false)
|
||||
{
|
||||
if (EAFLoggingUnitTesting is null)
|
||||
throw new Exception();
|
||||
}
|
||||
|
||||
public MET08THFTIRQS408M(TestContext testContext) : base(testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false)
|
||||
public MET08THFTIRQS408M(TestContext testContext) : base(DummyRoot, testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false)
|
||||
{
|
||||
}
|
||||
|
||||
@ -47,6 +48,9 @@ public class MET08THFTIRQS408M : EAFLoggingUnitTesting
|
||||
EAFLoggingUnitTesting.Dispose();
|
||||
}
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_43_0__MET08THFTIRQS408M__MoveMatchingFiles()
|
||||
{
|
||||
@ -57,6 +61,9 @@ public class MET08THFTIRQS408M : EAFLoggingUnitTesting
|
||||
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||
}
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_43_0__MET08THFTIRQS408M__OpenInsightMetrologyViewer()
|
||||
{
|
||||
@ -67,6 +74,9 @@ public class MET08THFTIRQS408M : EAFLoggingUnitTesting
|
||||
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||
}
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_43_0__MET08THFTIRQS408M__IQSSi()
|
||||
{
|
||||
@ -77,6 +87,9 @@ public class MET08THFTIRQS408M : EAFLoggingUnitTesting
|
||||
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||
}
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_43_0__MET08THFTIRQS408M__OpenInsight()
|
||||
{
|
||||
@ -87,6 +100,9 @@ public class MET08THFTIRQS408M : EAFLoggingUnitTesting
|
||||
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||
}
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_43_0__MET08THFTIRQS408M__OpenInsightMetrologyViewerAttachments()
|
||||
{
|
||||
@ -97,6 +113,9 @@ public class MET08THFTIRQS408M : EAFLoggingUnitTesting
|
||||
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||
}
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_43_0__MET08THFTIRQS408M__APC()
|
||||
{
|
||||
@ -107,6 +126,9 @@ public class MET08THFTIRQS408M : EAFLoggingUnitTesting
|
||||
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||
}
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_43_0__MET08THFTIRQS408M__SPaCe()
|
||||
{
|
||||
@ -117,6 +139,9 @@ public class MET08THFTIRQS408M : EAFLoggingUnitTesting
|
||||
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||
}
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_43_0__MET08THFTIRQS408M__Processed()
|
||||
{
|
||||
@ -127,6 +152,9 @@ public class MET08THFTIRQS408M : EAFLoggingUnitTesting
|
||||
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||
}
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_43_0__MET08THFTIRQS408M__Archive()
|
||||
{
|
||||
@ -137,6 +165,9 @@ public class MET08THFTIRQS408M : EAFLoggingUnitTesting
|
||||
EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||
}
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_43_0__MET08THFTIRQS408M__Dummy()
|
||||
{
|
||||
|
@ -18,6 +18,9 @@ public class BIORAD2
|
||||
_BIORAD2 = CreateSelfDescription.Staging.v2_36_3.BIORAD2.EAFLoggingUnitTesting;
|
||||
}
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_36_3__BIORAD2__QS408M() => _BIORAD2.Staging__v2_36_3__BIORAD2__QS408M();
|
||||
|
||||
|
@ -23,9 +23,15 @@ public class BIORAD3
|
||||
_BIORAD3 = CreateSelfDescription.Staging.v2_36_3.BIORAD3.EAFLoggingUnitTesting;
|
||||
}
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_36_3__BIORAD3__QS408M() => _BIORAD3.Staging__v2_36_3__BIORAD3__QS408M();
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_36_3__BIORAD3__QS408M637406016892454000__ReactorAndRDS()
|
||||
{
|
||||
|
@ -18,30 +18,57 @@ public class MET08THFTIRQS408M
|
||||
_MET08THFTIRQS408M = CreateSelfDescription.Staging.v2_36_3.MET08THFTIRQS408M.EAFLoggingUnitTesting;
|
||||
}
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_36_3__MET08THFTIRQS408M__MET08THFTIRQS408M() => _MET08THFTIRQS408M.Staging__v2_36_3__MET08THFTIRQS408M__MET08THFTIRQS408M();
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_36_3__MET08THFTIRQS408M__MET08THFTIRQS408M_() => _MET08THFTIRQS408M.Staging__v2_36_3__MET08THFTIRQS408M__MET08THFTIRQS408M_();
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_36_3__MET08THFTIRQS408M__MET08THFTIRQS408M__() => _MET08THFTIRQS408M.Staging__v2_36_3__MET08THFTIRQS408M__MET08THFTIRQS408M__();
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_36_3__MET08THFTIRQS408M__MET08THFTIRQS408M___() => _MET08THFTIRQS408M.Staging__v2_36_3__MET08THFTIRQS408M__MET08THFTIRQS408M___();
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_36_3__MET08THFTIRQS408M__MET08THFTIRQS408M____() => _MET08THFTIRQS408M.Staging__v2_36_3__MET08THFTIRQS408M__MET08THFTIRQS408M____();
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_36_3__MET08THFTIRQS408M__MET08THFTIRQS408M_____() => _MET08THFTIRQS408M.Staging__v2_36_3__MET08THFTIRQS408M__MET08THFTIRQS408M_____();
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_36_3__MET08THFTIRQS408M__MET08THFTIRQS408M______() => _MET08THFTIRQS408M.Staging__v2_36_3__MET08THFTIRQS408M__MET08THFTIRQS408M______();
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_36_3__MET08THFTIRQS408M__MET08THFTIRQS408M_______() => _MET08THFTIRQS408M.Staging__v2_36_3__MET08THFTIRQS408M__MET08THFTIRQS408M_______();
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_36_3__MET08THFTIRQS408M__MET08THFTIRQS408M________() => _MET08THFTIRQS408M.Staging__v2_36_3__MET08THFTIRQS408M__MET08THFTIRQS408M________();
|
||||
|
||||
|
@ -18,6 +18,9 @@ public class BIORAD2
|
||||
_BIORAD2 = CreateSelfDescription.Staging.v2_39_0.BIORAD2.EAFLoggingUnitTesting;
|
||||
}
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_39_0__BIORAD2__QS408M() => _BIORAD2.Staging__v2_39_0__BIORAD2__QS408M();
|
||||
|
||||
|
@ -23,9 +23,15 @@ public class BIORAD3
|
||||
_BIORAD3 = CreateSelfDescription.Staging.v2_39_0.BIORAD3.EAFLoggingUnitTesting;
|
||||
}
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_39_0__BIORAD3__QS408M() => _BIORAD3.Staging__v2_39_0__BIORAD3__QS408M();
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_39_0__BIORAD3__QS408M637406016892454000__ReactorAndRDS()
|
||||
{
|
||||
|
@ -18,30 +18,57 @@ public class MET08THFTIRQS408M
|
||||
_MET08THFTIRQS408M = CreateSelfDescription.Staging.v2_39_0.MET08THFTIRQS408M.EAFLoggingUnitTesting;
|
||||
}
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_39_0__MET08THFTIRQS408M__MET08THFTIRQS408M() => _MET08THFTIRQS408M.Staging__v2_39_0__MET08THFTIRQS408M__MET08THFTIRQS408M();
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_39_0__MET08THFTIRQS408M__MET08THFTIRQS408M_() => _MET08THFTIRQS408M.Staging__v2_39_0__MET08THFTIRQS408M__MET08THFTIRQS408M_();
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_39_0__MET08THFTIRQS408M__MET08THFTIRQS408M__() => _MET08THFTIRQS408M.Staging__v2_39_0__MET08THFTIRQS408M__MET08THFTIRQS408M__();
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_39_0__MET08THFTIRQS408M__MET08THFTIRQS408M___() => _MET08THFTIRQS408M.Staging__v2_39_0__MET08THFTIRQS408M__MET08THFTIRQS408M___();
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_39_0__MET08THFTIRQS408M__MET08THFTIRQS408M____() => _MET08THFTIRQS408M.Staging__v2_39_0__MET08THFTIRQS408M__MET08THFTIRQS408M____();
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_39_0__MET08THFTIRQS408M__MET08THFTIRQS408M_____() => _MET08THFTIRQS408M.Staging__v2_39_0__MET08THFTIRQS408M__MET08THFTIRQS408M_____();
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_39_0__MET08THFTIRQS408M__MET08THFTIRQS408M______() => _MET08THFTIRQS408M.Staging__v2_39_0__MET08THFTIRQS408M__MET08THFTIRQS408M______();
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_39_0__MET08THFTIRQS408M__MET08THFTIRQS408M_______() => _MET08THFTIRQS408M.Staging__v2_39_0__MET08THFTIRQS408M__MET08THFTIRQS408M_______();
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_39_0__MET08THFTIRQS408M__MET08THFTIRQS408M________() => _MET08THFTIRQS408M.Staging__v2_39_0__MET08THFTIRQS408M__MET08THFTIRQS408M________();
|
||||
|
||||
|
@ -18,6 +18,9 @@ public class BIORAD2
|
||||
_BIORAD2 = CreateSelfDescription.Staging.v2_43_0.BIORAD2.EAFLoggingUnitTesting;
|
||||
}
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_43_0__BIORAD2__QS408M() => _BIORAD2.Staging__v2_43_0__BIORAD2__QS408M();
|
||||
|
||||
|
@ -23,9 +23,15 @@ public class BIORAD3
|
||||
_BIORAD3 = CreateSelfDescription.Staging.v2_43_0.BIORAD3.EAFLoggingUnitTesting;
|
||||
}
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_43_0__BIORAD3__QS408M() => _BIORAD3.Staging__v2_43_0__BIORAD3__QS408M();
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_43_0__BIORAD3__QS408M637406016892454000__ReactorAndRDS()
|
||||
{
|
||||
|
@ -18,33 +18,63 @@ public class MET08THFTIRQS408M
|
||||
_MET08THFTIRQS408M = CreateSelfDescription.Staging.v2_43_0.MET08THFTIRQS408M.EAFLoggingUnitTesting;
|
||||
}
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_43_0__MET08THFTIRQS408M__MoveMatchingFiles() => _MET08THFTIRQS408M.Staging__v2_43_0__MET08THFTIRQS408M__MoveMatchingFiles();
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_43_0__MET08THFTIRQS408M__OpenInsightMetrologyViewer() => _MET08THFTIRQS408M.Staging__v2_43_0__MET08THFTIRQS408M__OpenInsightMetrologyViewer();
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_43_0__MET08THFTIRQS408M__IQSSi() => _MET08THFTIRQS408M.Staging__v2_43_0__MET08THFTIRQS408M__IQSSi();
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_43_0__MET08THFTIRQS408M__OpenInsight() => _MET08THFTIRQS408M.Staging__v2_43_0__MET08THFTIRQS408M__OpenInsight();
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_43_0__MET08THFTIRQS408M__OpenInsightMetrologyViewerAttachments() => _MET08THFTIRQS408M.Staging__v2_43_0__MET08THFTIRQS408M__OpenInsightMetrologyViewerAttachments();
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_43_0__MET08THFTIRQS408M__APC() => _MET08THFTIRQS408M.Staging__v2_43_0__MET08THFTIRQS408M__APC();
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_43_0__MET08THFTIRQS408M__SPaCe() => _MET08THFTIRQS408M.Staging__v2_43_0__MET08THFTIRQS408M__SPaCe();
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_43_0__MET08THFTIRQS408M__Processed() => _MET08THFTIRQS408M.Staging__v2_43_0__MET08THFTIRQS408M__Processed();
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_43_0__MET08THFTIRQS408M__Archive() => _MET08THFTIRQS408M.Staging__v2_43_0__MET08THFTIRQS408M__Archive();
|
||||
|
||||
#if true
|
||||
[Ignore]
|
||||
#endif
|
||||
[TestMethod]
|
||||
public void Staging__v2_43_0__MET08THFTIRQS408M__Dummy() => _MET08THFTIRQS408M.Staging__v2_43_0__MET08THFTIRQS408M__Dummy();
|
||||
|
||||
|
@ -26,10 +26,13 @@ namespace Adaptation._Tests.Shared;
|
||||
public class AdaptationTesting : ISMTP
|
||||
{
|
||||
|
||||
protected readonly string _DummyRoot;
|
||||
protected readonly string _Environment;
|
||||
protected readonly string _HostNameAndPort;
|
||||
protected readonly bool _HasWaitForProperty;
|
||||
protected readonly TestContext _TestContext;
|
||||
protected readonly bool _SkipEquipmentDictionary;
|
||||
protected readonly string _TestContextPropertiesAsJson;
|
||||
protected readonly Dictionary<string, CellInstanceVersion> _CellInstanceVersions;
|
||||
protected readonly Dictionary<string, EquipmentTypeVersion> _EquipmentTypeVersions;
|
||||
protected readonly Dictionary<string, string> _ParameterizedModelObjectDefinitionTypes;
|
||||
@ -38,10 +41,13 @@ public class AdaptationTesting : ISMTP
|
||||
protected readonly Dictionary<string, IList<ModelObjectParameterDefinition>> _ModelObjectParameters;
|
||||
protected readonly Dictionary<string, List<Tuple<string, string>>> _EquipmentDictionaryEventDescriptions;
|
||||
|
||||
public string DummyRoot => _DummyRoot;
|
||||
public string Environment => _Environment;
|
||||
public TestContext TestContext => _TestContext;
|
||||
public string HostNameAndPort => _HostNameAndPort;
|
||||
public bool HasWaitForProperty => _HasWaitForProperty;
|
||||
public bool SkipEquipmentDictionary => _SkipEquipmentDictionary;
|
||||
public string TestContextPropertiesAsJson => _TestContextPropertiesAsJson;
|
||||
public Dictionary<string, CellInstanceVersion> CellInstanceVersions => _CellInstanceVersions;
|
||||
public Dictionary<string, EquipmentTypeVersion> EquipmentTypeVersions => _EquipmentTypeVersions;
|
||||
public Dictionary<string, IList<ModelObjectParameterDefinition>> ModelObjectParameters => _ModelObjectParameters;
|
||||
@ -56,17 +62,22 @@ public class AdaptationTesting : ISMTP
|
||||
|
||||
void ISMTP.SendNormalPriorityEmailMessage(string subject, string body) => throw new NotImplementedException();
|
||||
|
||||
public AdaptationTesting(TestContext testContext, bool skipEquipmentDictionary)
|
||||
public AdaptationTesting(string dummyRoot, TestContext testContext, bool skipEquipmentDictionary, string testContextPropertiesAsJson, bool hasWaitForProperty)
|
||||
{
|
||||
|
||||
string environment = GetEnvironment(testContext);
|
||||
string hostNameAndPort = GetHostNameAndPort(environment);
|
||||
_DummyRoot = dummyRoot;
|
||||
_TestContext = testContext;
|
||||
_Environment = environment;
|
||||
_HostNameAndPort = hostNameAndPort;
|
||||
_HasWaitForProperty = hasWaitForProperty;
|
||||
_SkipEquipmentDictionary = skipEquipmentDictionary;
|
||||
_TestContextPropertiesAsJson = testContextPropertiesAsJson;
|
||||
_CellInstanceVersions = new Dictionary<string, CellInstanceVersion>();
|
||||
_EquipmentTypeVersions = new Dictionary<string, EquipmentTypeVersion>();
|
||||
_EquipmentTypeVersions = new Dictionary<string, EquipmentTypeVersion>();
|
||||
_ParameterizedModelObjectDefinitionTypes = new Dictionary<string, string>();
|
||||
_ParameterizedModelObjectDefinitionTypes = new Dictionary<string, string>();
|
||||
_EquipmentDictionaryVersions = new Dictionary<string, EquipmentDictionaryVersion>();
|
||||
_FileConnectorConfigurations = new Dictionary<string, FileConnectorConfiguration>();
|
||||
@ -94,13 +105,17 @@ public class AdaptationTesting : ISMTP
|
||||
return result;
|
||||
}
|
||||
|
||||
protected string GetTestResultsDirectory()
|
||||
public static string GetTestResultsDirectory(string testContextTestResultsDirectory, bool hasWaitForProperty)
|
||||
{
|
||||
string result = string.Empty;
|
||||
string testResults = "05_TestResults";
|
||||
string checkDirectory = _TestContext.TestResultsDirectory;
|
||||
if (string.IsNullOrEmpty(checkDirectory) || !checkDirectory.Contains(testResults))
|
||||
throw new Exception();
|
||||
string checkDirectory = testContextTestResultsDirectory;
|
||||
if (hasWaitForProperty && (string.IsNullOrEmpty(checkDirectory) || !checkDirectory.Contains(testResults)))
|
||||
throw new Exception($"A:{checkDirectory}; B:{testResults};");
|
||||
else if (!hasWaitForProperty && (string.IsNullOrEmpty(checkDirectory) || !checkDirectory.Contains(testResults)))
|
||||
result = testContextTestResultsDirectory;
|
||||
else
|
||||
{
|
||||
string rootDirectory = Path.GetPathRoot(checkDirectory);
|
||||
for (int i = 0; i < int.MaxValue; i++)
|
||||
{
|
||||
@ -113,11 +128,18 @@ public class AdaptationTesting : ISMTP
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (string.IsNullOrEmpty(result))
|
||||
throw new Exception();
|
||||
return result;
|
||||
}
|
||||
|
||||
private string GetTestResultsDirectory(bool hasWaitForProperty)
|
||||
{
|
||||
string result = GetTestResultsDirectory(_TestContext.TestResultsDirectory, hasWaitForProperty);
|
||||
return result;
|
||||
}
|
||||
|
||||
protected static string GetCellInstanceConnectionName(string cellInstanceConnectionName)
|
||||
{
|
||||
string result;
|
||||
@ -170,28 +192,29 @@ public class AdaptationTesting : ISMTP
|
||||
return results;
|
||||
}
|
||||
|
||||
internal string[] GetSegments(string methodBaseName)
|
||||
public static MethodBaseName GetMethodBaseName(string dummyRoot, string environment, bool hasWaitForProperty, string methodBaseName, string testResultsDirectory)
|
||||
{
|
||||
List<string> results;
|
||||
string fileFullName;
|
||||
MethodBaseName result;
|
||||
string comment;
|
||||
string[] textFiles;
|
||||
string fileFullName;
|
||||
string dummyDirectory;
|
||||
string withActualCICN;
|
||||
string separator = "__";
|
||||
string textFileDirectory;
|
||||
string connectionNameAndTicks;
|
||||
string cellInstanceConnectionName;
|
||||
string ticks = DateTime.Now.Ticks.ToString();
|
||||
string cellInstanceConnectionNameFromMethodBaseName;
|
||||
string testResultsDirectory = GetTestResultsDirectory();
|
||||
string[] segments = methodBaseName.Split(new string[] { separator }, StringSplitOptions.None);
|
||||
if (segments[0] != _Environment)
|
||||
if (segments[0] != environment)
|
||||
throw new Exception();
|
||||
string rawVersionName = segments[1];
|
||||
string rawCellInstanceName = segments[2];
|
||||
string cellInstanceVersionName = segments[1].Replace('_', '.');
|
||||
string cellInstanceName = segments[2].Replace('_', '-').Replace("_EQPT", "-EQPT");
|
||||
string before = string.Concat(_Environment, separator, rawVersionName, separator, cellInstanceName, separator);
|
||||
string before = string.Concat(environment, separator, rawVersionName, separator, cellInstanceName, separator);
|
||||
string after = methodBaseName.Substring(before.Length);
|
||||
string versionDirectory = Path.Combine(testResultsDirectory, _Environment, cellInstanceName, cellInstanceVersionName);
|
||||
string versionDirectory = Path.Combine(testResultsDirectory, environment, cellInstanceName, cellInstanceVersionName);
|
||||
if (!Directory.Exists(versionDirectory))
|
||||
_ = Directory.CreateDirectory(versionDirectory);
|
||||
comment = segments[segments.Length - 1];
|
||||
@ -221,87 +244,76 @@ public class AdaptationTesting : ISMTP
|
||||
cellInstanceConnectionNameFromMethodBaseName = after;
|
||||
}
|
||||
cellInstanceConnectionName = GetCellInstanceConnectionName(cellInstanceConnectionNameFromMethodBaseName);
|
||||
string methodBaseNameWithActualCICN = GetMethodBaseNameWithActualCICN(methodBaseName, rawCellInstanceName, cellInstanceConnectionNameFromMethodBaseName, cellInstanceConnectionName, ticks);
|
||||
withActualCICN = GetMethodBaseNameWithActualCICN(methodBaseName, rawCellInstanceName, cellInstanceConnectionNameFromMethodBaseName, cellInstanceConnectionName, ticks);
|
||||
if (hasWaitForProperty)
|
||||
dummyDirectory = string.Empty;
|
||||
else if (string.IsNullOrEmpty(ticks))
|
||||
dummyDirectory = string.Empty;
|
||||
else
|
||||
{
|
||||
if (string.IsNullOrEmpty(dummyRoot))
|
||||
throw new Exception($"{nameof(dummyRoot)} is empty!");
|
||||
if (!withActualCICN.Contains(ticks))
|
||||
throw new Exception($"{withActualCICN} doesn't contain {ticks}!");
|
||||
segments = withActualCICN.Split(new string[] { ticks }, StringSplitOptions.None);
|
||||
dummyDirectory = Path.Combine(dummyRoot, cellInstanceName, ticks, string.Join(null, segments));
|
||||
if (!Directory.Exists(dummyDirectory))
|
||||
_ = Directory.CreateDirectory(dummyDirectory);
|
||||
}
|
||||
if (string.IsNullOrEmpty(ticks))
|
||||
{
|
||||
textFiles = Array.Empty<string>();
|
||||
fileFullName = Path.Combine(versionDirectory, methodBaseNameWithActualCICN, $"{cellInstanceConnectionNameFromMethodBaseName}.json");
|
||||
textFileDirectory = string.Empty;
|
||||
fileFullName = Path.Combine(versionDirectory, withActualCICN, $"{cellInstanceConnectionNameFromMethodBaseName}.json");
|
||||
}
|
||||
else
|
||||
{
|
||||
segments = methodBaseNameWithActualCICN.Split(new string[] { ticks }, StringSplitOptions.None);
|
||||
string textDirectory = Path.Combine(versionDirectory, segments[0], string.Concat(ticks, segments[1]));
|
||||
segments = withActualCICN.Split(new string[] { ticks }, StringSplitOptions.None);
|
||||
textFileDirectory = Path.Combine(versionDirectory, segments[0], string.Concat(ticks, segments[1]));
|
||||
fileFullName = Path.Combine(versionDirectory, segments[0], $"{cellInstanceConnectionNameFromMethodBaseName}.json");
|
||||
if (!Directory.Exists(textDirectory))
|
||||
}
|
||||
result = new(after, before, cellInstanceConnectionName, cellInstanceConnectionNameFromMethodBaseName, cellInstanceName, cellInstanceVersionName, comment, dummyDirectory, fileFullName, rawCellInstanceName, rawVersionName, separator, testResultsDirectory, textFileDirectory, ticks, versionDirectory, withActualCICN);
|
||||
return result;
|
||||
}
|
||||
|
||||
private MethodBaseName GetMethodBaseName(MethodBase methodBase)
|
||||
{
|
||||
textFiles = Array.Empty<string>();
|
||||
string renameDirectory = Path.Combine(Path.GetDirectoryName(textDirectory), $"_Rename - {Path.GetFileName(textDirectory)}");
|
||||
MethodBaseName result;
|
||||
string testResultsDirectory = GetTestResultsDirectory(_HasWaitForProperty);
|
||||
result = GetMethodBaseName(_DummyRoot, _Environment, _HasWaitForProperty, methodBase.Name, testResultsDirectory);
|
||||
return result;
|
||||
}
|
||||
|
||||
private string[] GetTextFiles(MethodBaseName mbn)
|
||||
{
|
||||
string[] results;
|
||||
if (string.IsNullOrEmpty(mbn.TextFileDirectory))
|
||||
results = Array.Empty<string>();
|
||||
else if (!Directory.Exists(mbn.TextFileDirectory))
|
||||
{
|
||||
results = Array.Empty<string>();
|
||||
if (!_HasWaitForProperty)
|
||||
_ = Directory.CreateDirectory(mbn.TextFileDirectory);
|
||||
else
|
||||
{
|
||||
string renameDirectory = Path.Combine(Path.GetDirectoryName(mbn.TextFileDirectory), $"_Rename - {Path.GetFileName(mbn.TextFileDirectory)}");
|
||||
_ = Directory.CreateDirectory(renameDirectory);
|
||||
_ = Process.Start("explorer.exe", renameDirectory);
|
||||
File.WriteAllText(Path.Combine(renameDirectory, $"{nameof(FileConnectorConfiguration.SourceFileFilter)}.txt"), string.Empty);
|
||||
File.WriteAllText(Path.Combine(renameDirectory, $"{nameof(FileConnectorConfiguration.SourceFileLocation)}.txt"), string.Empty);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
textFiles = Directory.GetFiles(textDirectory, "*.txt", SearchOption.TopDirectoryOnly);
|
||||
if (!textFiles.Any())
|
||||
results = Directory.GetFiles(mbn.TextFileDirectory, "*.txt", SearchOption.TopDirectoryOnly);
|
||||
if (!string.IsNullOrEmpty(mbn.Ticks) && _HasWaitForProperty && !results.Any())
|
||||
{
|
||||
_ = Process.Start("explorer.exe", textDirectory);
|
||||
File.WriteAllText(Path.Combine(textDirectory, "_ Why.why"), string.Empty);
|
||||
_ = Process.Start("explorer.exe", mbn.TextFileDirectory);
|
||||
File.WriteAllText(Path.Combine(mbn.TextFileDirectory, "_ Why.why"), string.Empty);
|
||||
}
|
||||
}
|
||||
}
|
||||
results = new List<string>
|
||||
{
|
||||
_Environment,
|
||||
rawCellInstanceName,
|
||||
cellInstanceName,
|
||||
cellInstanceVersionName,
|
||||
cellInstanceConnectionNameFromMethodBaseName,
|
||||
cellInstanceConnectionName,
|
||||
ticks,
|
||||
comment,
|
||||
fileFullName
|
||||
};
|
||||
results.AddRange(textFiles);
|
||||
return results.ToArray();
|
||||
}
|
||||
|
||||
internal string[] GetSegments(MethodBase methodBase)
|
||||
{
|
||||
string[] results = GetSegments(methodBase.Name);
|
||||
return results;
|
||||
}
|
||||
|
||||
internal static string GetEnvironment(string[] segments) => segments[0];
|
||||
|
||||
internal static string GetRawCellInstanceName(string[] segments) => segments[1];
|
||||
|
||||
internal static string GetCellInstanceName(string[] segments) => segments[2];
|
||||
|
||||
internal static string GetCellInstanceVersionName(string[] segments) => segments[3];
|
||||
|
||||
internal static string GetCellInstanceConnectionNameFromMethodBaseName(string[] segments) => segments[4];
|
||||
|
||||
internal static string GetCellInstanceConnectionName(string[] segments) => segments[5];
|
||||
|
||||
internal static string GetTicks(string[] segments) => segments[6];
|
||||
|
||||
internal static string GetComment(string[] segments) => segments[7];
|
||||
|
||||
internal static FileInfo GetFileName(string[] segments) => new(segments[8]);
|
||||
|
||||
internal static string[] GetTextFiles(string[] segments)
|
||||
{
|
||||
List<string> results = new();
|
||||
if (segments.Length > 8)
|
||||
{
|
||||
for (int i = 9; i < segments.Length; i++)
|
||||
results.Add(segments[i]);
|
||||
}
|
||||
return results.ToArray();
|
||||
}
|
||||
|
||||
protected static Stream ToStream(string @this)
|
||||
{
|
||||
MemoryStream memoryStream = new();
|
||||
@ -466,6 +478,7 @@ public class AdaptationTesting : ISMTP
|
||||
AppendLine("#pragma warning disable CA2254").
|
||||
AppendLine("#pragma warning disable IDE0060").
|
||||
AppendLine().
|
||||
AppendLine("internal static string DummyRoot { get; private set; }").
|
||||
Append("internal static ").Append(cellInstanceNameWithoutHyphen).AppendLine(" EAFLoggingUnitTesting { get; private set; }");
|
||||
else
|
||||
throw new Exception();
|
||||
@ -474,13 +487,15 @@ public class AdaptationTesting : ISMTP
|
||||
else if (i == 1)
|
||||
_ = stringBuilder.
|
||||
AppendLine().
|
||||
Append("public ").Append(cellInstanceNameWithoutHyphen).AppendLine("() : base(testContext: null, declaringType: null, skipEquipmentDictionary: false)").
|
||||
Append("static ").Append(cellInstanceNameWithoutHyphen).AppendLine("() => DummyRoot = @\"\\\\messv02ecc1.ec.local\\EC_Characterization_Si\\Dummy\";").
|
||||
AppendLine().
|
||||
Append("public ").Append(cellInstanceNameWithoutHyphen).AppendLine("() : base(DummyRoot, testContext: null, declaringType: null, skipEquipmentDictionary: false)").
|
||||
AppendLine("{").
|
||||
AppendLine("if (EAFLoggingUnitTesting is null)").
|
||||
AppendLine("throw new Exception();").
|
||||
AppendLine("}").
|
||||
AppendLine().
|
||||
Append("public ").Append(cellInstanceNameWithoutHyphen).AppendLine("(TestContext testContext) : base(testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false)").
|
||||
Append("public ").Append(cellInstanceNameWithoutHyphen).AppendLine("(TestContext testContext) : base(DummyRoot, testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false)").
|
||||
AppendLine("{").
|
||||
AppendLine("}").
|
||||
AppendLine();
|
||||
@ -541,6 +556,9 @@ public class AdaptationTesting : ISMTP
|
||||
if (i == 2)
|
||||
{
|
||||
_ = stringBuilder.
|
||||
AppendLine("#if true").
|
||||
AppendLine("[Ignore]").
|
||||
AppendLine("#endif").
|
||||
AppendLine("[TestMethod]").
|
||||
Append("public void ").Append(methodName).Append("() => ").Append('_').Append(cellInstanceNameWithoutHyphen).Append('.').Append(methodName).AppendLine("();").AppendLine();
|
||||
}
|
||||
@ -550,13 +568,16 @@ public class AdaptationTesting : ISMTP
|
||||
throw new Exception("Versions should match!");
|
||||
equipmentTypeName = componentsCellComponentCellComponent.Equipment.EquipmentType.Name;
|
||||
_ = stringBuilder.
|
||||
AppendLine("#if true").
|
||||
AppendLine("[Ignore]").
|
||||
AppendLine("#endif").
|
||||
AppendLine("[TestMethod]").
|
||||
Append("public void ").Append(methodName).AppendLine("()").
|
||||
AppendLine("{").
|
||||
Append("string check = \"").Append(check.Split('\\').Last()).AppendLine("\";").
|
||||
AppendLine("MethodBase methodBase = new StackFrame().GetMethod();").
|
||||
AppendLine("EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, \" - Getting configuration\"));").
|
||||
AppendLine("_ = Shared.AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);").
|
||||
AppendLine("_ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting);").
|
||||
AppendLine("EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, \" - Exit\"));").
|
||||
AppendLine("}").
|
||||
AppendLine();
|
||||
@ -879,32 +900,26 @@ public class AdaptationTesting : ISMTP
|
||||
public string[] GetCSharpText(string testName)
|
||||
{
|
||||
string[] results;
|
||||
string[] segments = GetSegments(testName);
|
||||
FileInfo fileInfo = GetFileName(segments);
|
||||
string cellInstanceName = GetCellInstanceName(segments);
|
||||
string cellInstanceVersionName = GetCellInstanceVersionName(segments);
|
||||
string cellInstanceConnectionName = GetCellInstanceConnectionName(segments);
|
||||
if (!string.IsNullOrEmpty(cellInstanceConnectionName) && !Directory.Exists(fileInfo.DirectoryName))
|
||||
string testResultsDirectory = GetTestResultsDirectory(_HasWaitForProperty);
|
||||
MethodBaseName mbn = GetMethodBaseName(_DummyRoot, _Environment, _HasWaitForProperty, testName, testResultsDirectory);
|
||||
FileInfo fileInfo = new(mbn.FileFullName);
|
||||
if (!string.IsNullOrEmpty(mbn.CellInstanceConnectionName) && !Directory.Exists(fileInfo.DirectoryName))
|
||||
_ = Directory.CreateDirectory(fileInfo.Directory.FullName);
|
||||
Tuple<string, CellInstanceVersion> cellInstanceVersionTuple = GetCellInstanceVersionTuple(cellInstanceName, cellInstanceVersionName);
|
||||
results = GetCSharpTextB(fileInfo, cellInstanceName, cellInstanceVersionName, cellInstanceVersionTuple.Item2);
|
||||
Tuple<string, CellInstanceVersion> cellInstanceVersionTuple = GetCellInstanceVersionTuple(mbn.CellInstanceName, mbn.CellInstanceVersionName);
|
||||
results = GetCSharpTextB(fileInfo, mbn.CellInstanceName, mbn.CellInstanceVersionName, cellInstanceVersionTuple.Item2);
|
||||
return results;
|
||||
}
|
||||
|
||||
public string[] GetConfiguration(MethodBase methodBase)
|
||||
{
|
||||
string[] results;
|
||||
string[] segments = GetSegments(methodBase.Name);
|
||||
string ticks = GetTicks(segments);
|
||||
FileInfo fileInfo = GetFileName(segments);
|
||||
string cellInstanceName = GetCellInstanceName(segments);
|
||||
string cellInstanceVersionName = GetCellInstanceVersionName(segments);
|
||||
string cellInstanceConnectionName = GetCellInstanceConnectionName(segments);
|
||||
if (!string.IsNullOrEmpty(cellInstanceConnectionName) && !Directory.Exists(fileInfo.DirectoryName))
|
||||
MethodBaseName mbn = GetMethodBaseName(methodBase);
|
||||
FileInfo fileInfo = new(mbn.FileFullName);
|
||||
if (!string.IsNullOrEmpty(mbn.CellInstanceConnectionName) && !Directory.Exists(fileInfo.DirectoryName))
|
||||
_ = Directory.CreateDirectory(fileInfo.Directory.FullName);
|
||||
Tuple<string, CellInstanceVersion> cellInstanceVersionTuple = GetCellInstanceVersionTuple(cellInstanceName, cellInstanceVersionName);
|
||||
Tuple<string, FileConnectorConfiguration> fileConnectorConfigurationTuple = GetFileConnectorConfigurationTuple(cellInstanceVersionTuple, cellInstanceConnectionName);
|
||||
if (string.IsNullOrEmpty(ticks) && fileConnectorConfigurationTuple.Item2?.FileScanningIntervalInSeconds is not null)
|
||||
Tuple<string, CellInstanceVersion> cellInstanceVersionTuple = GetCellInstanceVersionTuple(mbn.CellInstanceName, mbn.CellInstanceVersionName);
|
||||
Tuple<string, FileConnectorConfiguration> fileConnectorConfigurationTuple = GetFileConnectorConfigurationTuple(cellInstanceVersionTuple, mbn.CellInstanceConnectionName);
|
||||
if (string.IsNullOrEmpty(mbn.Ticks) && fileConnectorConfigurationTuple.Item2?.FileScanningIntervalInSeconds is not null)
|
||||
{
|
||||
string fileScanningIntervalInSecondsLine;
|
||||
string versionDirectory = Path.GetDirectoryName(fileInfo.DirectoryName);
|
||||
@ -914,12 +929,12 @@ public class AdaptationTesting : ISMTP
|
||||
fileScanningIntervalInSecondsLine = $"+\t{fileConnectorConfigurationTuple.Item2.FileScanningIntervalInSeconds.Value:+0000}\t{Path.GetFileName(fileInfo.DirectoryName)}";
|
||||
File.AppendAllLines(Path.Combine(versionDirectory, "FileScanningIntervalInSeconds.txt"), new string[] { fileScanningIntervalInSecondsLine });
|
||||
}
|
||||
Tuple<string, string, string, EquipmentTypeVersion> equipmentTypeVersionTuple = GetEquipmentTypeVersionTuple(cellInstanceVersionTuple.Item2, cellInstanceConnectionName);
|
||||
Tuple<string, string, string, EquipmentTypeVersion> equipmentTypeVersionTuple = GetEquipmentTypeVersionTuple(cellInstanceVersionTuple.Item2, mbn.CellInstanceConnectionName);
|
||||
Tuple<string, string> parameterizedModelObjectDefinitionTypeTuple = GetParameterizedModelObjectDefinitionTypeTuple(equipmentTypeVersionTuple);
|
||||
Tuple<string, IList<ModelObjectParameterDefinition>> modelObjectParametersTuple = GetModelObjectParameters(equipmentTypeVersionTuple);
|
||||
Tuple<string, string, string, EquipmentDictionaryVersion> equipmentDictionaryVersionTuple = GetEquipmentDictionaryVersionTuple(cellInstanceVersionTuple.Item2, cellInstanceConnectionName, equipmentTypeVersionTuple.Item4);
|
||||
Tuple<string, string, string, EquipmentDictionaryVersion> equipmentDictionaryVersionTuple = GetEquipmentDictionaryVersionTuple(cellInstanceVersionTuple.Item2, mbn.CellInstanceConnectionName, equipmentTypeVersionTuple.Item4);
|
||||
Tuple<string, List<Tuple<string, string>>> equipmentDictionaryIsAlwaysEnabledEventsTuple = GetEquipmentDictionaryIsAlwaysEnabledEventsTuple(equipmentDictionaryVersionTuple);
|
||||
Dictionary<string, object> objects = GetKeyValuePairs(cellInstanceName, cellInstanceVersionName, cellInstanceConnectionName, fileConnectorConfigurationTuple.Item2, equipmentTypeVersionTuple.Item2, parameterizedModelObjectDefinitionTypeTuple.Item2, modelObjectParametersTuple.Item2, equipmentDictionaryVersionTuple.Item2, equipmentDictionaryIsAlwaysEnabledEventsTuple.Item2);
|
||||
Dictionary<string, object> objects = GetKeyValuePairs(mbn.CellInstanceName, mbn.CellInstanceVersionName, mbn.CellInstanceConnectionName, fileConnectorConfigurationTuple.Item2, equipmentTypeVersionTuple.Item2, parameterizedModelObjectDefinitionTypeTuple.Item2, modelObjectParametersTuple.Item2, equipmentDictionaryVersionTuple.Item2, equipmentDictionaryIsAlwaysEnabledEventsTuple.Item2);
|
||||
string json = JsonSerializer.Serialize(objects, new JsonSerializerOptions { WriteIndented = true });
|
||||
results = new string[] { fileInfo.FullName, json };
|
||||
return results;
|
||||
@ -928,22 +943,19 @@ public class AdaptationTesting : ISMTP
|
||||
public IFileRead Get(MethodBase methodBase, string sourceFileLocation, string sourceFileFilter, bool useCyclicalForDescription)
|
||||
{
|
||||
IFileRead result;
|
||||
string[] segments = GetSegments(methodBase.Name);
|
||||
FileInfo fileInfo = GetFileName(segments);
|
||||
string cellInstanceName = GetCellInstanceName(segments);
|
||||
string cellInstanceVersionName = GetCellInstanceVersionName(segments);
|
||||
MethodBaseName mbn = GetMethodBaseName(methodBase);
|
||||
FileInfo fileInfo = new(mbn.FileFullName);
|
||||
Dictionary<string, string> fileParameter = new();
|
||||
string cellInstanceConnectionName = GetCellInstanceConnectionName(segments);
|
||||
if (!string.IsNullOrEmpty(cellInstanceConnectionName) && !Directory.Exists(fileInfo.DirectoryName))
|
||||
if (!string.IsNullOrEmpty(mbn.CellInstanceConnectionName) && !Directory.Exists(fileInfo.DirectoryName))
|
||||
_ = Directory.CreateDirectory(fileInfo.Directory.FullName);
|
||||
Dictionary<string, List<long>> dummyRuns = new();
|
||||
Dictionary<long, List<string>> staticRuns = new();
|
||||
Tuple<string, CellInstanceVersion> cellInstanceVersionTuple = GetCellInstanceVersionTuple(cellInstanceName, cellInstanceVersionName);
|
||||
Tuple<string, FileConnectorConfiguration> fileConnectorConfigurationTuple = GetFileConnectorConfigurationTuple(cellInstanceVersionTuple, cellInstanceConnectionName);
|
||||
Tuple<string, string, string, EquipmentTypeVersion> equipmentTypeVersionTuple = GetEquipmentTypeVersionTuple(cellInstanceVersionTuple.Item2, cellInstanceConnectionName);
|
||||
Tuple<string, CellInstanceVersion> cellInstanceVersionTuple = GetCellInstanceVersionTuple(mbn.CellInstanceName, mbn.CellInstanceVersionName);
|
||||
Tuple<string, FileConnectorConfiguration> fileConnectorConfigurationTuple = GetFileConnectorConfigurationTuple(cellInstanceVersionTuple, mbn.CellInstanceConnectionName);
|
||||
Tuple<string, string, string, EquipmentTypeVersion> equipmentTypeVersionTuple = GetEquipmentTypeVersionTuple(cellInstanceVersionTuple.Item2, mbn.CellInstanceConnectionName);
|
||||
Tuple<string, string> parameterizedModelObjectDefinitionTypeTuple = GetParameterizedModelObjectDefinitionTypeTuple(equipmentTypeVersionTuple);
|
||||
Tuple<string, IList<ModelObjectParameterDefinition>> modelObjectParametersTuple = GetModelObjectParameters(equipmentTypeVersionTuple);
|
||||
Tuple<string, string, string, EquipmentDictionaryVersion> equipmentDictionaryVersionTuple = GetEquipmentDictionaryVersionTuple(cellInstanceVersionTuple.Item2, cellInstanceConnectionName, equipmentTypeVersionTuple.Item4);
|
||||
Tuple<string, string, string, EquipmentDictionaryVersion> equipmentDictionaryVersionTuple = GetEquipmentDictionaryVersionTuple(cellInstanceVersionTuple.Item2, mbn.CellInstanceConnectionName, equipmentTypeVersionTuple.Item4);
|
||||
_ = GetEquipmentDictionaryIsAlwaysEnabledEventsTuple(equipmentDictionaryVersionTuple);
|
||||
if (!string.IsNullOrEmpty(sourceFileLocation) && sourceFileLocation != fileConnectorConfigurationTuple.Item2.SourceFileLocation)
|
||||
fileConnectorConfigurationTuple.Item2.SourceFileLocation = sourceFileLocation;
|
||||
@ -975,33 +987,29 @@ public class AdaptationTesting : ISMTP
|
||||
_ = Directory.CreateDirectory(fileConnectorConfigurationTuple.Item2.AlternateTargetFolder);
|
||||
}
|
||||
}
|
||||
result = FileHandlers.CellInstanceConnectionName.Get(this, fileParameter, cellInstanceName, cellInstanceConnectionName, fileConnectorConfigurationTuple.Item2, equipmentTypeVersionTuple.Item2, parameterizedModelObjectDefinitionTypeTuple.Item2, modelObjectParametersTuple.Item2, equipmentDictionaryVersionTuple.Item2, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: false);
|
||||
result = FileHandlers.CellInstanceConnectionName.Get(this, fileParameter, mbn.CellInstanceName, mbn.CellInstanceConnectionName, fileConnectorConfigurationTuple.Item2, equipmentTypeVersionTuple.Item2, parameterizedModelObjectDefinitionTypeTuple.Item2, modelObjectParametersTuple.Item2, equipmentDictionaryVersionTuple.Item2, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: false);
|
||||
return result;
|
||||
}
|
||||
|
||||
public string[] GetVariables(MethodBase methodBase, string check)
|
||||
public string[] GetVariables(MethodBase methodBase, string check, bool validatePDSF = true)
|
||||
{
|
||||
string[] results;
|
||||
string[] lines;
|
||||
string ipdsfFile;
|
||||
string textFileDirectory;
|
||||
string[] segments;
|
||||
string fileNameWithoutExtension;
|
||||
string searchPattern = "*.ipdsf";
|
||||
string methodBaseNameWithActualCICN;
|
||||
string sourceFileFilter = string.Empty;
|
||||
string sourceFileLocation = string.Empty;
|
||||
string[] segments = GetSegments(methodBase);
|
||||
string ticks = GetTicks(segments);
|
||||
FileInfo fileInfo = GetFileName(segments);
|
||||
string[] textFiles = GetTextFiles(segments);
|
||||
string cellInstanceName = GetCellInstanceName(segments);
|
||||
string rawCellInstanceName = GetRawCellInstanceName(segments);
|
||||
string cellInstanceConnectionName = GetCellInstanceConnectionName(segments);
|
||||
string cellInstanceConnectionNameFromMethodBaseName = GetCellInstanceConnectionNameFromMethodBaseName(segments);
|
||||
string methodBaseNameWithActualCICN = GetMethodBaseNameWithActualCICN(methodBase.Name, rawCellInstanceName, cellInstanceConnectionNameFromMethodBaseName, cellInstanceConnectionName, ticks);
|
||||
MethodBaseName mbn = GetMethodBaseName(methodBase);
|
||||
string[] textFiles = GetTextFiles(mbn);
|
||||
if (!textFiles.Any())
|
||||
textFileDirectory = string.Empty;
|
||||
else
|
||||
textFileDirectory = Path.GetDirectoryName(textFiles[0]);
|
||||
{
|
||||
if (_HasWaitForProperty)
|
||||
throw new Exception("Set text file!");
|
||||
sourceFileLocation = mbn.DummyDirectory;
|
||||
}
|
||||
foreach (string textFile in textFiles)
|
||||
{
|
||||
lines = File.ReadAllLines(textFile);
|
||||
@ -1012,18 +1020,20 @@ public class AdaptationTesting : ISMTP
|
||||
sourceFileFilter = lines[0];
|
||||
else if (fileNameWithoutExtension == nameof(FileConnectorConfiguration.SourceFileLocation))
|
||||
{
|
||||
segments = lines[0].Split(new string[] { ticks }, StringSplitOptions.None);
|
||||
methodBaseNameWithActualCICN = GetMethodBaseNameWithActualCICN(methodBase.Name, mbn.RawCellInstanceName, mbn.CellInstanceConnectionNameFromMethodBaseName, mbn.CellInstanceConnectionName, mbn.Ticks);
|
||||
segments = lines[0].Split(new string[] { mbn.Ticks }, StringSplitOptions.None);
|
||||
if (segments.Length > 2)
|
||||
throw new Exception("Ticks should only appear once in source file location!");
|
||||
if (segments.Length != 2)
|
||||
throw new Exception("Ticks missing from source file location!");
|
||||
if (segments[1].Contains(ticks))
|
||||
if (segments[1].Contains(mbn.Ticks))
|
||||
throw new Exception("From source file location path should not contain ticks!");
|
||||
if (!segments[1].EndsWith(methodBaseNameWithActualCICN.Replace(ticks, string.Empty)))
|
||||
if (!segments[1].EndsWith(methodBaseNameWithActualCICN.Replace(mbn.Ticks, string.Empty)))
|
||||
throw new Exception("Method name missing from source file location!");
|
||||
sourceFileLocation = lines[0];
|
||||
}
|
||||
}
|
||||
FileInfo fileInfo = new(mbn.FileFullName);
|
||||
if (!Directory.Exists(fileInfo.Directory.FullName))
|
||||
_ = Directory.CreateDirectory(fileInfo.Directory.FullName);
|
||||
if (!fileInfo.Exists)
|
||||
@ -1044,6 +1054,10 @@ public class AdaptationTesting : ISMTP
|
||||
fileConnectorConfiguration.SourceFileFilter = sourceFileFilter;
|
||||
if (!string.IsNullOrEmpty(sourceFileLocation))
|
||||
fileConnectorConfiguration.SourceFileLocation = sourceFileLocation;
|
||||
if (!validatePDSF)
|
||||
ipdsfFile = string.Empty;
|
||||
else
|
||||
{
|
||||
if (string.IsNullOrEmpty(sourceFileLocation))
|
||||
ipdsfFile = searchPattern;
|
||||
else
|
||||
@ -1062,7 +1076,8 @@ public class AdaptationTesting : ISMTP
|
||||
}
|
||||
if (ipdsfFile == searchPattern)
|
||||
throw new Exception();
|
||||
results = new string[] { fileInfo.FullName, json, fileConnectorConfiguration.SourceFileLocation, fileConnectorConfiguration.SourceFileFilter, ipdsfFile, textFileDirectory };
|
||||
}
|
||||
results = new string[] { fileInfo.FullName, json, fileConnectorConfiguration.SourceFileLocation, fileConnectorConfiguration.SourceFileFilter, ipdsfFile, mbn.TextFileDirectory };
|
||||
if (string.IsNullOrEmpty(results[0]))
|
||||
throw new Exception();
|
||||
if (string.IsNullOrEmpty(results[1]))
|
||||
@ -1071,7 +1086,7 @@ public class AdaptationTesting : ISMTP
|
||||
throw new Exception();
|
||||
if (string.IsNullOrEmpty(results[3]))
|
||||
throw new Exception();
|
||||
if (string.IsNullOrEmpty(results[4]))
|
||||
if (validatePDSF && string.IsNullOrEmpty(results[4]))
|
||||
throw new Exception();
|
||||
if (string.IsNullOrEmpty(results[5]))
|
||||
throw new Exception();
|
||||
@ -1232,13 +1247,16 @@ public class AdaptationTesting : ISMTP
|
||||
{
|
||||
string result;
|
||||
Tuple<string, Test[], JsonElement[], List<FileInfo>> extractResult = fileRead.ReExtract();
|
||||
if (!fileRead.IsDuplicator)
|
||||
{
|
||||
Assert.IsFalse(string.IsNullOrEmpty(extractResult?.Item1));
|
||||
Assert.IsTrue(extractResult.Item3.Length > 0, "extractResult Array Length check!");
|
||||
Assert.IsNotNull(extractResult.Item3);
|
||||
Assert.IsNotNull(extractResult.Item4);
|
||||
if (!validatePDSF)
|
||||
_ = GetLogisticsColumnsAndBody(fileRead, logistics, extractResult, new(string.Empty, Array.Empty<string>(), Array.Empty<string>()));
|
||||
else
|
||||
{
|
||||
Assert.IsTrue(extractResult.Item3.Length > 0, "extractResult Array Length check!");
|
||||
Tuple<string, string[], string[]> pdsf = GetLogisticsColumnsAndBody(variables[2], variables[4]);
|
||||
Tuple<string, string[], string[]> pdsfNew = GetLogisticsColumnsAndBody(fileRead, logistics, extractResult, pdsf);
|
||||
CompareSave(variables[5], pdsf, pdsfNew);
|
||||
@ -1251,10 +1269,11 @@ public class AdaptationTesting : ISMTP
|
||||
Assert.IsTrue(join[0] == join[1], "Item3 (Join) check!");
|
||||
}
|
||||
UpdatePassDirectory(variables[2]);
|
||||
}
|
||||
result = extractResult.Item1;
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
// namespace Adaptation._Tests.Helpers { public class AdaptationTesting { } }
|
||||
// 2022-05-12 -> AdaptationTesting
|
||||
// 2022-08-05 -> AdaptationTesting
|
@ -10,13 +10,13 @@ public class EAFLoggingUnitTesting : LoggingUnitTesting, IDisposable
|
||||
|
||||
public AdaptationTesting AdaptationTesting => _AdaptationTesting;
|
||||
|
||||
public EAFLoggingUnitTesting(TestContext testContext, Type declaringType, bool skipEquipmentDictionary) :
|
||||
public EAFLoggingUnitTesting(string dummyRoot, TestContext testContext, Type declaringType, bool skipEquipmentDictionary) :
|
||||
base(testContext, declaringType)
|
||||
{
|
||||
if (testContext is null || declaringType is null)
|
||||
_AdaptationTesting = null;
|
||||
else
|
||||
_AdaptationTesting = new AdaptationTesting(testContext, skipEquipmentDictionary);
|
||||
_AdaptationTesting = new AdaptationTesting(dummyRoot, testContext, skipEquipmentDictionary, _TestContextPropertiesAsJson, _HasWaitForProperty);
|
||||
}
|
||||
|
||||
public new void Dispose()
|
||||
|
45
Adaptation/_Tests/Shared/MethodBaseName.cs
Normal file
45
Adaptation/_Tests/Shared/MethodBaseName.cs
Normal file
@ -0,0 +1,45 @@
|
||||
namespace Adaptation._Tests.Shared;
|
||||
|
||||
public class MethodBaseName
|
||||
{
|
||||
|
||||
public string After { get; private set; }
|
||||
public string Before { get; private set; }
|
||||
public string CellInstanceConnectionName { get; private set; }
|
||||
public string CellInstanceConnectionNameFromMethodBaseName { get; private set; }
|
||||
public string CellInstanceName { get; private set; }
|
||||
public string CellInstanceVersionName { get; private set; }
|
||||
public string Comment { get; private set; }
|
||||
public string DummyDirectory { get; private set; }
|
||||
public string FileFullName { get; private set; }
|
||||
public string RawCellInstanceName { get; private set; }
|
||||
public string RawVersionName { get; private set; }
|
||||
public string Separator { get; private set; }
|
||||
public string TestResultsDirectory { get; private set; }
|
||||
public string TextFileDirectory { get; private set; }
|
||||
public string Ticks { get; private set; }
|
||||
public string VersionDirectory { get; private set; }
|
||||
public string WithActualCICN { get; private set; }
|
||||
|
||||
public MethodBaseName(string after, string before, string cellInstanceConnectionName, string cellInstanceConnectionNameFromMethodBaseName, string cellInstanceName, string cellInstanceVersionName, string comment, string dummyDirectory, string fileFullName, string rawCellInstanceName, string rawVersionName, string separator, string testResultsDirectory, string textFileDirectory, string ticks, string versionDirectory, string withActualCICN)
|
||||
{
|
||||
After = after;
|
||||
Before = before;
|
||||
CellInstanceConnectionName = cellInstanceConnectionName;
|
||||
CellInstanceConnectionNameFromMethodBaseName = cellInstanceConnectionNameFromMethodBaseName;
|
||||
CellInstanceName = cellInstanceName;
|
||||
CellInstanceVersionName = cellInstanceVersionName;
|
||||
Comment = comment;
|
||||
DummyDirectory = dummyDirectory;
|
||||
FileFullName = fileFullName;
|
||||
RawCellInstanceName = rawCellInstanceName;
|
||||
RawVersionName = rawVersionName;
|
||||
Separator = separator;
|
||||
TestResultsDirectory = testResultsDirectory;
|
||||
TextFileDirectory = textFileDirectory;
|
||||
Ticks = ticks;
|
||||
VersionDirectory = versionDirectory;
|
||||
WithActualCICN = withActualCICN;
|
||||
}
|
||||
|
||||
}
|
@ -13,9 +13,13 @@ namespace Adaptation._Tests.Shared;
|
||||
public class UnitTesting
|
||||
{
|
||||
|
||||
protected readonly bool _HasWaitForProperty;
|
||||
protected readonly IsEnvironment _IsEnvironment;
|
||||
protected readonly string _TestContextPropertiesAsJson;
|
||||
|
||||
public IsEnvironment IsEnvironment => _IsEnvironment;
|
||||
public bool HasWaitForProperty => _HasWaitForProperty;
|
||||
public string TestContextPropertiesAsJson => _TestContextPropertiesAsJson;
|
||||
|
||||
public UnitTesting(TestContext testContext, Type declaringType)
|
||||
{
|
||||
@ -23,19 +27,24 @@ public class UnitTesting
|
||||
_IsEnvironment = null;
|
||||
else
|
||||
{
|
||||
string waitFor = "\"WaitFor\":";
|
||||
string projectDirectory = GetProjectDirectory(testContext);
|
||||
string json = JsonSerializer.Serialize(testContext.Properties);
|
||||
_TestContextPropertiesAsJson = JsonSerializer.Serialize(testContext.Properties, new JsonSerializerOptions { WriteIndented = true });
|
||||
_HasWaitForProperty = _TestContextPropertiesAsJson.Contains(waitFor);
|
||||
string vsCodeDirectory = Path.Combine(projectDirectory, ".vscode");
|
||||
if (!Directory.Exists(vsCodeDirectory))
|
||||
_ = Directory.CreateDirectory(vsCodeDirectory);
|
||||
string launchText = GetLaunchText();
|
||||
File.WriteAllText(Path.Combine(vsCodeDirectory, "launch.json"), launchText);
|
||||
if (_HasWaitForProperty)
|
||||
{
|
||||
for (int i = 0; i < int.MaxValue; i++)
|
||||
{
|
||||
if (!json.Contains("Debugger.IsAttached") || Debugger.IsAttached)
|
||||
if (!_TestContextPropertiesAsJson.Contains($"{waitFor} \"Debugger.IsAttached\"") || Debugger.IsAttached)
|
||||
break;
|
||||
Thread.Sleep(500);
|
||||
}
|
||||
}
|
||||
MethodBase methodBase = declaringType.GetMethod(testContext.TestName);
|
||||
if (methodBase is not null)
|
||||
{
|
||||
|
83
Adaptation/_Tests/Static/QS408M.cs
Normal file
83
Adaptation/_Tests/Static/QS408M.cs
Normal file
@ -0,0 +1,83 @@
|
||||
using Adaptation._Tests.Shared;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Reflection;
|
||||
|
||||
namespace Adaptation._Tests.Static;
|
||||
|
||||
[TestClass]
|
||||
public class QS408M : LoggingUnitTesting, IDisposable
|
||||
{
|
||||
|
||||
#pragma warning disable CA2254
|
||||
#pragma warning disable IDE0060
|
||||
|
||||
internal static QS408M LoggingUnitTesting { get; private set; }
|
||||
|
||||
public QS408M() : base(testContext: null, declaringType: null)
|
||||
{
|
||||
if (LoggingUnitTesting is null)
|
||||
throw new Exception();
|
||||
}
|
||||
|
||||
public QS408M(TestContext testContext) : base(testContext, new StackFrame().GetMethod().DeclaringType)
|
||||
{
|
||||
}
|
||||
|
||||
[ClassInitialize]
|
||||
public static void ClassInitialize(TestContext testContext)
|
||||
{
|
||||
if (LoggingUnitTesting is null)
|
||||
LoggingUnitTesting = new QS408M(testContext);
|
||||
}
|
||||
|
||||
[ClassCleanup()]
|
||||
public static void ClassCleanup()
|
||||
{
|
||||
if (LoggingUnitTesting.Logger is not null)
|
||||
LoggingUnitTesting.Logger.LogInformation("Cleanup");
|
||||
if (LoggingUnitTesting is not null)
|
||||
LoggingUnitTesting.Dispose();
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void TestDescriptor()
|
||||
{
|
||||
FileHandlers.QS408M.Descriptor descriptor;
|
||||
MethodBase methodBase = new StackFrame().GetMethod();
|
||||
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration"));
|
||||
descriptor = FileHandlers.QS408M.ProcessData.GetDescriptor("12-123456-1234");
|
||||
Assert.IsTrue(descriptor.Reactor is "12");
|
||||
Assert.IsTrue(descriptor.RDS is "123456");
|
||||
Assert.IsTrue(descriptor.PSN is "1234");
|
||||
descriptor = FileHandlers.QS408M.ProcessData.GetDescriptor("123456");
|
||||
Assert.IsTrue(descriptor.Reactor is "00");
|
||||
Assert.IsTrue(descriptor.RDS is "123456");
|
||||
Assert.IsTrue(descriptor.PSN is "0000");
|
||||
descriptor = FileHandlers.QS408M.ProcessData.GetDescriptor("1T123456");
|
||||
Assert.IsTrue(descriptor.Reactor is "00");
|
||||
Assert.IsTrue(descriptor.RDS is "123456");
|
||||
Assert.IsTrue(descriptor.PSN is "0000");
|
||||
descriptor = FileHandlers.QS408M.ProcessData.GetDescriptor("MP");
|
||||
Assert.IsTrue(descriptor.Reactor is "00");
|
||||
Assert.IsTrue(descriptor.RDS is "000000");
|
||||
Assert.IsTrue(descriptor.PSN is "0000");
|
||||
Assert.IsTrue(descriptor.Employee is "MP");
|
||||
descriptor = FileHandlers.QS408M.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");
|
||||
descriptor = FileHandlers.QS408M.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");
|
||||
LoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit"));
|
||||
}
|
||||
|
||||
}
|
@ -1,5 +1,17 @@
|
||||
{
|
||||
"scripts": {
|
||||
"AA-CreateSelfDescription.Staging.v2_43_4-BIORAD2_EQPT": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~Adaptation._Tests.CreateSelfDescription.Staging.v2_43_4 & ClassName~BIORAD2_EQPT\" -- TestRunParameters.Parameter(name=\\\"WaitFor\\\", value=\\\"Debugger.IsAttached\\\")",
|
||||
"AB-CreateSelfDescription.Staging.v2_43_4-BIORAD3_EQPT": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~Adaptation._Tests.CreateSelfDescription.Staging.v2_43_4 & ClassName~BIORAD3_EQPT\" -- TestRunParameters.Parameter(name=\\\"WaitFor\\\", value=\\\"Debugger.IsAttached\\\")",
|
||||
"BA-CreateSelfDescription.Staging.v2_43_4-BIORAD2": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~Adaptation._Tests.CreateSelfDescription.Staging.v2_43_4 & ClassName~BIORAD2\" -- TestRunParameters.Parameter(name=\\\"WaitFor\\\", value=\\\"Debugger.IsAttached\\\")",
|
||||
"BB-CreateSelfDescription.Staging.v2_43_4-BIORAD3": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~Adaptation._Tests.CreateSelfDescription.Staging.v2_43_4 & ClassName~BIORAD3\" -- TestRunParameters.Parameter(name=\\\"WaitFor\\\", value=\\\"Debugger.IsAttached\\\")",
|
||||
"CA-CreateSelfDescription.Staging.v2_43_4-MET08THFTIRQS408M": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~Adaptation._Tests.CreateSelfDescription.Staging.v2_43_4 & ClassName~MET08THFTIRQS408M\" -- TestRunParameters.Parameter(name=\\\"WaitFor\\\", value=\\\"Debugger.IsAttached\\\")",
|
||||
"DA-CreateSelfDescription.Staging.v2_43_4": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~Adaptation._Tests.CreateSelfDescription.Staging.v2_43_4\" -- TestRunParameters.Parameter(name=\\\"WaitFor\\\", value=\\\"Debugger.IsAttached\\\")",
|
||||
"EA-Extract.Staging.v2_43_4-BIORAD2_EQPT-Staging__v2_43_4__BIORAD2_EQPT__DownloadRsMFile637953072332628623__Normal": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~Adaptation._Tests.Extract.Staging.v2_43_4 & ClassName~BIORAD2_EQPT & Name~Staging__v2_43_4__BIORAD2_EQPT__DownloadRsMFile637953072332628623__Normal\" -- TestRunParameters.Parameter(name=\\\"WaitFor\\\", value=\\\"Debugger.IsAttached\\\")",
|
||||
"EB-Extract.Staging.v2_43_4-BIORAD3_EQPT-Staging__v2_43_4__BIORAD3_EQPT__DownloadRsMFile637953072332628623__Normal": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~Adaptation._Tests.Extract.Staging.v2_43_4 & ClassName~BIORAD3_EQPT & Name~Staging__v2_43_4__BIORAD3_EQPT__DownloadRsMFile637953072332628623__Normal\" -- TestRunParameters.Parameter(name=\\\"WaitFor\\\", value=\\\"Debugger.IsAttached\\\")",
|
||||
"FA-Extract.Staging.v2_43_4-BIORAD2-Staging__v2_43_4__BIORAD2__QS408M637406016892454000__ReactorAndRDS": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~Adaptation._Tests.Extract.Staging.v2_43_4 & ClassName~BIORAD2 & Name~Staging__v2_43_4__BIORAD2__QS408M637406016892454000__ReactorAndRDS\" -- TestRunParameters.Parameter(name=\\\"WaitFor\\\", value=\\\"Debugger.IsAttached\\\")",
|
||||
"FB-Extract.Staging.v2_43_4-BIORAD3-Staging__v2_43_4__BIORAD3__QS408M637406016892454000__ReactorAndRDS": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~Adaptation._Tests.Extract.Staging.v2_43_4 & ClassName~BIORAD3 & Name~Staging__v2_43_4__BIORAD3__QS408M637406016892454000__ReactorAndRDS\" -- TestRunParameters.Parameter(name=\\\"WaitFor\\\", value=\\\"Debugger.IsAttached\\\")",
|
||||
"GA-Extract.Staging.v2_43_4-MET08THFTIRQS408M-Staging__v2_43_4__MET08THFTIRQS408M__OpenInsightMetrologyViewer637810124350899080__Normal": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~Adaptation._Tests.Extract.Staging.v2_43_4 & ClassName~MET08THFTIRQS408M & Name~Staging__v2_43_4__MET08THFTIRQS408M__OpenInsightMetrologyViewer637810124350899080__Normal\" -- TestRunParameters.Parameter(name=\\\"WaitFor\\\", value=\\\"Debugger.IsAttached\\\")",
|
||||
"HA-Extract.Staging.v2_43_4-BIORAD2-Staging__v2_43_4__BIORAD2__pcl637812984345592512__MinFileLength": "dotnet test --filter \"FullyQualifiedName~Adaptation._Tests.Extract.Staging.v2_43_4 & ClassName~BIORAD2 & Name~Staging__v2_43_4__BIORAD2__pcl637812984345592512__MinFileLength\" -- TestRunParameters.Parameter(name=\\\"WaitFor\\\", value=\\\"Debugger.IsAttached\\\")",
|
||||
"Alpha": "ABCDEFGHIJKLMNOPQRSTUVWXYZ",
|
||||
"nuget-clear": "dotnet nuget locals all --clear",
|
||||
"build": "dotnet build --runtime win-x64 --self-contained",
|
||||
@ -9,20 +21,6 @@
|
||||
"dotnet-format": "dotnet format --report .vscode --verbosity detailed --severity warn",
|
||||
"MSBuild": "\"C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/MSBuild/Current/Bin/MSBuild.exe\" /target:Build /restore:True /p:RestoreSources=https://api.nuget.org/v3/index.json%3Bhttps://packagemanagement.eu.infineon.com:4430/api/v2/%3Bhttps://tfs.intra.infineon.com/tfs/ManufacturingIT/_packaging/eaf/nuget/v3/index.json /detailedsummary /consoleloggerparameters:PerformanceSummary;ErrorsOnly; /property:Configuration=Debug;TargetFrameworkVersion=v4.8 ../MET08THFTIRQS408M.csproj",
|
||||
"pull": "git pull",
|
||||
"garbage-collect": "git gc",
|
||||
"AA-CreateSelfDescription.Staging.v2_43_0-BIORAD3_EQPT-Staging__v2_43_0__BIORAD3__QS408M": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~Adaptation._Tests.CreateSelfDescription.Staging.v2_43_0 & ClassName~BIORAD3_EQPT & Name~Staging__v2_43_0__BIORAD3__QS408M\" -- TestRunParameters.Parameter(name=\\\"Debug\\\", value=\\\"Debugger.IsAttached\\\")",
|
||||
"AT-CreateSelfDescription.Staging.v2_43_0-MET08THFTIRQS408M": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~Adaptation._Tests.CreateSelfDescription.Staging.v2_43_0 & ClassName~MET08THFTIRQS408M\" -- TestRunParameters.Parameter(name=\\\"Debug\\\", value=\\\"Debugger.IsAttached\\\")",
|
||||
"AV-CreateSelfDescription.Staging.v2_43_0-BIORAD2_EQPT": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~Adaptation._Tests.CreateSelfDescription.Staging.v2_43_0 & ClassName~BIORAD2_EQPT\" -- TestRunParameters.Parameter(name=\\\"Debug\\\", value=\\\"Debugger.IsAttached\\\")",
|
||||
"AW-CreateSelfDescription.Staging.v2_43_0-BIORAD2": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~Adaptation._Tests.CreateSelfDescription.Staging.v2_43_0 & ClassName~BIORAD2\" -- TestRunParameters.Parameter(name=\\\"Debug\\\", value=\\\"Debugger.IsAttached\\\")",
|
||||
"AX-CreateSelfDescription.Staging.v2_43_0-BIORAD3_EQPT": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~Adaptation._Tests.CreateSelfDescription.Staging.v2_43_0 & ClassName~BIORAD3_EQPT\" -- TestRunParameters.Parameter(name=\\\"Debug\\\", value=\\\"Debugger.IsAttached\\\")",
|
||||
"AY-CreateSelfDescription.Staging.v2_43_0-BIORAD3": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~Adaptation._Tests.CreateSelfDescription.Staging.v2_43_0 & ClassName~BIORAD3\" -- TestRunParameters.Parameter(name=\\\"Debug\\\", value=\\\"Debugger.IsAttached\\\")",
|
||||
"AZ-CreateSelfDescription.Staging.v2_43_0": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~Adaptation._Tests.CreateSelfDescription.Staging.v2_43_0\" -- TestRunParameters.Parameter(name=\\\"Debug\\\", value=\\\"Debugger.IsAttached\\\")",
|
||||
"BA-Extract.Staging.v2_43_0-BIORAD3-Staging__v2_43_0__BIORAD3__QS408M637406016892454000__ReactorAndRDS": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~Adaptation._Tests.Extract.Staging.v2_43_0 & ClassName~BIORAD3 & Name~Staging__v2_43_0__BIORAD3__QS408M637406016892454000__ReactorAndRDS\" -- TestRunParameters.Parameter(name=\\\"Debug\\\", value=\\\"Debugger.IsAttached\\\")",
|
||||
"BT-Extract.Staging.v2_43_0-MET08THFTIRQS408M": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~Adaptation._Tests.Extract.Staging.v2_43_0 & ClassName~MET08THFTIRQS408M\" -- TestRunParameters.Parameter(name=\\\"Debug\\\", value=\\\"Debugger.IsAttached\\\")",
|
||||
"BV-Extract.Staging.v2_43_0-BIORAD2_EQPT": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~Adaptation._Tests.Extract.Staging.v2_43_0 & ClassName~BIORAD2_EQPT\" -- TestRunParameters.Parameter(name=\\\"Debug\\\", value=\\\"Debugger.IsAttached\\\")",
|
||||
"BW-Extract.Staging.v2_43_0-BIORAD2": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~Adaptation._Tests.Extract.Staging.v2_43_0 & ClassName~BIORAD2\" -- TestRunParameters.Parameter(name=\\\"Debug\\\", value=\\\"Debugger.IsAttached\\\")",
|
||||
"BX-Extract.Staging.v2_43_0-BIORAD3_EQPT": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~Adaptation._Tests.Extract.Staging.v2_43_0 & ClassName~BIORAD3_EQPT\" -- TestRunParameters.Parameter(name=\\\"Debug\\\", value=\\\"Debugger.IsAttached\\\")",
|
||||
"BY-Extract.Staging.v2_43_0-BIORAD3": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~Adaptation._Tests.Extract.Staging.v2_43_0 & ClassName~BIORAD3\" -- TestRunParameters.Parameter(name=\\\"Debug\\\", value=\\\"Debugger.IsAttached\\\")",
|
||||
"BZ-Extract.Staging.v2_43_0": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~Adaptation._Tests.Extract.Staging.v2_43_0\" -- TestRunParameters.Parameter(name=\\\"Debug\\\", value=\\\"Debugger.IsAttached\\\")"
|
||||
"garbage-collect": "git gc"
|
||||
}
|
||||
}
|
@ -108,6 +108,7 @@
|
||||
<Compile Include="Adaptation\FileHandlers\OpenInsight\FileRead.cs" />
|
||||
<Compile Include="Adaptation\FileHandlers\Processed\FileRead.cs" />
|
||||
<Compile Include="Adaptation\FileHandlers\QS408M\Description.cs" />
|
||||
<Compile Include="Adaptation\FileHandlers\QS408M\Descriptor.cs" />
|
||||
<Compile Include="Adaptation\FileHandlers\QS408M\Detail.cs" />
|
||||
<Compile Include="Adaptation\FileHandlers\QS408M\FileRead.cs" />
|
||||
<Compile Include="Adaptation\FileHandlers\QS408M\ProcessData.cs" />
|
||||
@ -117,6 +118,12 @@
|
||||
<Compile Include="Adaptation\Ifx\Eaf\EquipmentConnector\File\Component\FilePathGenerator.cs" />
|
||||
<Compile Include="Adaptation\Ifx\Eaf\EquipmentConnector\File\Configuration\FileConnectorConfiguration.cs" />
|
||||
<Compile Include="Adaptation\Ifx\Eaf\EquipmentConnector\File\SelfDescription\FileConnectorParameterTypeDefinitionProvider.cs" />
|
||||
<Compile Include="Adaptation\Infineon\Monitoring\MonA\ExtWebClient.cs">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Adaptation\Infineon\Monitoring\MonA\IMonIn.cs" />
|
||||
<Compile Include="Adaptation\Infineon\Monitoring\MonA\MonIn.cs" />
|
||||
<Compile Include="Adaptation\Infineon\Monitoring\MonA\State.cs" />
|
||||
<Compile Include="Adaptation\PeerGroup\GCL\Annotations\NotNullAttribute.cs" />
|
||||
<Compile Include="Adaptation\PeerGroup\GCL\SecsDriver\HsmsConnectionMode.cs" />
|
||||
<Compile Include="Adaptation\PeerGroup\GCL\SecsDriver\HsmsSessionMode.cs" />
|
||||
|
Loading…
x
Reference in New Issue
Block a user