Delete SelfHost PackageReference

cellInstanceVersion.EdaConnection.PortNumber
Convert before throwing the error
CA1862 and GetWeekOfYear for WritePDSF
Removed Open Insight API IFX Directory from Save
dotnet_diagnostic
Delete File if Exists
yml ec fix
net8.0
This commit is contained in:
2024-04-09 12:55:04 -07:00
parent ae47e7dbd5
commit 3355fb3318
89 changed files with 914 additions and 1687 deletions

View File

@ -1,31 +0,0 @@
#if NETFRAMEWORK && NET48
using System.Web.Http;
using System.Web.Http.Results;
namespace Adaptation.FileHandlers.MoveAllFiles.ApiController;
[Route("api/[controller]")]
public class BarcodeController : System.Web.Http.ApiController
{
#nullable enable
#pragma warning disable CA1822
public OkNegotiatedContentResult<string> Get()
#pragma warning restore CA1822
{
string result = "record";
return Ok(result);
}
[Route("{id}")]
#pragma warning disable CA1822
public JsonResult<PostReplay?> Post(string id)
#pragma warning restore CA1822
{
PostReplay? postReplay = BarcodeHelper.Post(id, Request.Content);
return Json(postReplay);
}
}
#endif

View File

@ -1,120 +0,0 @@
using Adaptation.FileHandlers.MoveAllFiles.OpenInsight;
using Adaptation.FileHandlers.TIBCO.Transport;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Net.Http;
using System.Text.Json;
using System.Threading.Tasks;
namespace Adaptation.FileHandlers.MoveAllFiles.ApiController;
public class BarcodeHelper
{
#nullable enable
private static string? GetJson(HttpContent? httpContent)
{
string? result;
if (httpContent is null)
result = null;
else
{
Task<string> task = httpContent.ReadAsStringAsync();
task.Wait();
result = task.Result;
}
return result;
}
private static void Write(string barcodeHostFileShare, string cellInstanceConnectionName, Notification notification)
{
DateTime dateTime = DateTime.Now;
Calendar calendar = new CultureInfo("en-US").Calendar;
string weekOfYear = $"{dateTime:yyyy}_Week_{calendar.GetWeekOfYear(dateTime, CalendarWeekRule.FirstDay, DayOfWeek.Sunday):00}";
string directory = Path.Combine(barcodeHostFileShare, weekOfYear, dateTime.ToString("yyyy-MM-dd_HH"));
if (!Directory.Exists(directory))
_ = Directory.CreateDirectory(directory);
File.WriteAllText(Path.Combine(directory, $"{cellInstanceConnectionName}.csv"), notification.LastScanServiceResultValue);
}
private static Job GetJob(string lsl2SQLConnectionString, string metrologyFileShare, string barcodeHostFileShare, string id, Notification notification)
{
Job result;
string lastScan = notification.LastScanServiceResultValue.Length < 3 || notification.LastScanServiceResultValue[1] is not 't' and not 'T' || notification.LastScanServiceResultValue[0] != '1' ? notification.LastScanServiceResultValue : notification.LastScanServiceResultValue.Substring(2);
string json = string.Concat("{\"Area\": \"Si\", \"EquipmentType\": \"MET08THFTIRQS408M\", \"MesEntity\": \"", id, "\", \"Sequence\": \"", notification.KeyPressEvent.DateTime.Ticks, "\", \"MID\": \"-", lastScan, "-\", \"Recipe\": \"Recipe\"}");
result = new(lsl2SQLConnectionString, metrologyFileShare, barcodeHostFileShare, json);
return result;
}
private static Root? GetRoot(string rds)
{
HttpClient httpClient = new();
string url = $"{FileRead.OpenInsightApplicationProgrammingInterface}/materials/rds/{rds}";
string httpClientResult = httpClient.GetStringAsync(url).Result;
Root? root = JsonSerializer.Deserialize<Root>(httpClientResult);
httpClient.Dispose();
return root;
}
private static void SetQaMetTests(string toolClass, Root root, Dictionary<string, List<QaMetTest>> qaMetTests)
{
List<QaMetTest>? collection;
foreach (PrsStage prsStage in root.Rds.ProdSpec.PrsStages)
{
if (prsStage.QaMetTests is null)
continue;
foreach (QaMetTest qaMetTest in prsStage.QaMetTests)
{
if (qaMetTest.ToolClass != toolClass)
continue;
if (!qaMetTests.TryGetValue(prsStage.Stage, out collection))
{
qaMetTests.Add(prsStage.Stage, new());
if (!qaMetTests.TryGetValue(prsStage.Stage, out collection))
throw new Exception();
}
collection.Add(qaMetTest);
}
}
}
internal static PostReplay? Post(string id, HttpContent? httpContent)
{
PostReplay? result;
string? json = GetJson(httpContent);
if (json is null)
result = null;
else
{
Notification? notification = JsonSerializer.Deserialize<Notification>(json);
if (notification is null)
result = null;
else
{
Job? job;
string? mid;
Dictionary<string, List<QaMetTest>> qaMetTests = new();
Write(TIBCO.FileRead.BarcodeHostFileShare, id, notification.Value);
try
{
const string hyphen = "-";
job = GetJob(TIBCO.FileRead.LSL2SQLConnectionString, TIBCO.FileRead.MetrologyFileShare, TIBCO.FileRead.BarcodeHostFileShare, id, notification.Value);
mid = job.SpecName == hyphen || job.ProcessSpecName == hyphen ? $"{job.ProcessType}" : $"{job.ProcessType}.{job.SpecName}.{job.ProcessSpecName}";
Root? root = GetRoot(job.LotName);
if (root is not null)
SetQaMetTests(notification.Value.ToolClass, root, qaMetTests);
}
catch (Exception ex)
{
mid = string.Concat(ex.Message, Environment.NewLine, ex.StackTrace);
}
result = new(mid, qaMetTests); // .ProdSpec.PrsStages[0].QaMetTests[0].Recipe);
}
}
return result;
}
}

View File

@ -1,277 +0,0 @@
namespace Adaptation.FileHandlers.MoveAllFiles.ApiController;
/// <summary>
/// Mapping for this can be found here: https://github.com/torvalds/linux/blob/master/include/uapi/linux/input-event-codes.h
/// </summary>
public enum EventCode
{
Reserved = 0,
Esc = 1,
Num1 = 2,
Num2 = 3,
Num3 = 4,
Num4 = 5,
Num5 = 6,
Num6 = 7,
Num7 = 8,
Num8 = 9,
Num9 = 10,
Num0 = 11,
Minus = 12,
Equal = 13,
Backspace = 14,
Tab = 15,
Q = 16,
W = 17,
E = 18,
R = 19,
T = 20,
Y = 21,
U = 22,
I = 23,
O = 24,
P = 25,
LeftBrace = 26,
RightBrace = 27,
Enter = 28,
LeftCtrl = 29,
A = 30,
S = 31,
D = 32,
F = 33,
G = 34,
H = 35,
J = 36,
K = 37,
L = 38,
Semicolon = 39,
Apostrophe = 40,
Grave = 41,
LeftShift = 42,
Backslash = 43,
Z = 44,
X = 45,
C = 46,
V = 47,
B = 48,
N = 49,
M = 50,
Comma = 51,
Dot = 52,
Slash = 53,
RightShift = 54,
KpAsterisk = 55,
LeftAlt = 56,
Space = 57,
Capslock = 58,
F1 = 59,
Pf2 = 60,
F3 = 61,
F4 = 62,
F5 = 63,
F6 = 64,
F7 = 65,
F8 = 66,
Pf9 = 67,
F10 = 68,
Numlock = 69,
ScrollLock = 70,
Kp7 = 71,
Kp8 = 72,
Kp9 = 73,
PkpMinus = 74,
Kp4 = 75,
Kp5 = 76,
Kp6 = 77,
KpPlus = 78,
Kp1 = 79,
Kp2 = 80,
Kp3 = 81,
Kp0 = 82,
KpDot = 83,
Zenkakuhankaku = 85,
//102ND = 86,
F11 = 87,
F12 = 88,
Ro = 89,
Katakana = 90,
Hiragana = 91,
Henkan = 92,
Katakanahiragana = 93,
Muhenkan = 94,
KpJpComma = 95,
KpEnter = 96,
RightCtrl = 97,
KpSlash = 98,
SysRq = 99,
RightAlt = 100,
LineFeed = 101,
Home = 102,
Up = 103,
Pageup = 104,
Left = 105,
Right = 106,
End = 107,
Down = 108,
Pagedown = 109,
Insert = 110,
Delete = 111,
Macro = 112,
Mute = 113,
VolumeDown = 114,
VolumeUp = 115,
Power = 116, // SC System Power Down
KpEqual = 117,
KpPlusMinus = 118,
Pause = 119,
Scale = 120, // AL Compiz Scale (Expose)
KpComma = 121,
Hangeul = 122,
Hanja = 123,
Yen = 124,
LeftMeta = 125,
RightMeta = 126,
Compose = 127,
Stop = 128, // AC Stop
Again = 129,
Props = 130, // AC Properties
Undo = 131, // AC Undo
Front = 132,
Copy = 133, // AC Copy
Open = 134, // AC Open
Paste = 135, // AC Paste
Find = 136, // AC Search
Cut = 137, // AC Cut
Help = 138, // AL Integrated Help Center
Menu = 139, // Menu (show menu)
Calc = 140, // AL Calculator
Setup = 141,
Sleep = 142, // SC System Sleep
Wakeup = 143, // System Wake Up
File = 144, // AL Local Machine Browser
Sendfile = 145,
DeleteFile = 146,
Xfer = 147,
Prog1 = 148,
Prog2 = 149,
Www = 150, // AL Internet Browser
MsDos = 151,
Coffee = 152, // AL Terminal Lock/Screensaver
RotateDisplay = 153, // Display orientation for e.g. tablets
CycleWindows = 154,
Mail = 155,
Bookmarks = 156, // AC Bookmarks
Computer = 157,
Back = 158, // AC Back
Forward = 159, // AC Forward
CloseCd = 160,
EjectCd = 161,
EjectCloseCd = 162,
NextSong = 163,
PlayPause = 164,
PreviousSong = 165,
StopCd = 166,
Record = 167,
Rewind = 168,
Phone = 169, // Media Select Telephone
Iso = 170,
Config = 171, // AL Consumer Control Configuration
Homepage = 172, // AC Home
Refresh = 173, // AC Refresh
Exit = 174, // AC Exit
Move = 175,
Edit = 176,
ScrollUp = 177,
ScrollDown = 178,
KpLeftParen = 179,
KpRightParen = 180,
New = 181, // AC New
Redo = 182, // AC Redo/Repeat
F13 = 183,
F14 = 184,
F15 = 185,
F16 = 186,
F17 = 187,
F18 = 188,
F19 = 189,
F20 = 190,
F21 = 191,
F22 = 192,
F23 = 193,
F24 = 194,
PlayCd = 200,
PauseCd = 201,
Prog3 = 202,
Prog4 = 203,
Dashboard = 204, // AL Dashboard
Suspend = 205,
Close = 206, // AC Close
Play = 207,
FastForward = 208,
BassBoost = 209,
Print = 210, // AC Print
Hp = 211,
Camera = 212,
Sound = 213,
Question = 214,
Email = 215,
Chat = 216,
Search = 217,
Connect = 218,
Finance = 219, // AL Checkbook/Finance
Sport = 220,
Shop = 221,
AltErase = 222,
Cancel = 223, // AC Cancel
BrightnessDown = 224,
BrightnessUp = 225,
Media = 226,
SwitchVideoMode = 227, // Cycle between available video outputs (Monitor/LCD/TV-out/etc)
KbdIllumToggle = 228,
KbdIllumDown = 229,
KbdIllumUp = 230,
Send = 231, // AC Send
Reply = 232, // AC Reply
ForwardMail = 233, // AC Forward Msg
Save = 234, // AC Save
Documents = 235,
Battery = 236,
Bluetooth = 237,
Wlan = 238,
Uwb = 239,
Unknown = 240,
VideoNext = 241, // drive next video source
VideoPrev = 242, // drive previous video source
BrightnessCycle = 243, // brightness up, after max is min
BrightnessAuto = 244, // Set Auto Brightness: manual brightness control is off, rely on ambient
DisplayOff = 245, // display device to off state
Wwan = 246, // Wireless WAN (LTE, UMTS, GSM, etc.)
RfKill = 247, // Key that controls all radios
MicMute = 248, // Mute / unmute the microphone
LeftMouse = 272,
RightMouse = 273,
MiddleMouse = 274,
MouseBack = 275,
MouseForward = 276,
ToolFinger = 325,
ToolQuintTap = 328,
Touch = 330,
ToolDoubleTap = 333,
ToolTripleTap = 334,
ToolQuadTap = 335,
Mic = 582
}

View File

@ -1,20 +0,0 @@
using System;
namespace Adaptation.FileHandlers.MoveAllFiles.ApiController;
public readonly struct KeyPressEvent
{
public DateTime DateTime { get; }
public EventCode EventCode { get; }
public KeyState KeyState { get; }
public TimeSpan TimeSpan { get; }
public KeyPressEvent(DateTime dateTime, EventCode eventCode, KeyState keyState, TimeSpan timeSpan)
{
DateTime = dateTime;
EventCode = eventCode;
KeyState = keyState;
TimeSpan = timeSpan;
}
}

View File

@ -1,8 +0,0 @@
namespace Adaptation.FileHandlers.MoveAllFiles.ApiController;
public enum KeyState
{
KeyUp,
KeyDown,
KeyHold
}

View File

@ -1,20 +0,0 @@
namespace Adaptation.FileHandlers.MoveAllFiles.ApiController;
public readonly struct Notification
{
public KeyPressEvent KeyPressEvent { get; }
public string LastScanServiceResultValue { get; }
public string ToolClass { get; }
public string HttpContentBody { get; }
[System.Text.Json.Serialization.JsonConstructor]
public Notification(KeyPressEvent keyPressEvent, string lastScanServiceResultValue, string toolClass, string httpContentBody)
{
KeyPressEvent = keyPressEvent;
LastScanServiceResultValue = lastScanServiceResultValue;
ToolClass = toolClass;
HttpContentBody = httpContentBody;
}
}

View File

@ -1,21 +0,0 @@
using Adaptation.FileHandlers.MoveAllFiles.OpenInsight;
using System.Collections.Generic;
namespace Adaptation.FileHandlers.MoveAllFiles.ApiController;
public class PostReplay
{
#nullable enable
public string? MId { get; }
public Dictionary<string, List<QaMetTest>> QaMetTests { get; }
[System.Text.Json.Serialization.JsonConstructor]
public PostReplay(string? mid, Dictionary<string, List<QaMetTest>> qaMetTests)
{
MId = mid;
QaMetTests = qaMetTests;
}
}

View File

@ -7,10 +7,6 @@ using System;
using System.Collections.Generic;
using System.IO;
using System.Text.Json;
#if NETFRAMEWORK && NET48
using System.Web.Http;
using System.Web.Http.SelfHost;
#endif
namespace Adaptation.FileHandlers.MoveAllFiles;
@ -19,13 +15,7 @@ public class FileRead : Shared.FileRead, IFileRead
#nullable enable
public const string HttpSelfHostConfigurationBaseAddress = "http://localhost:8080/";
public const string OpenInsightApplicationProgrammingInterface = "https://oi-prod-ec-api.mes.infineon.com/api/oiWizard";
private long? _TickOffset;
#if NETFRAMEWORK && NET48
private readonly HttpSelfHostServer? _HttpSelfHostServer;
#endif
public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<string>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) :
base(new Description(), false, smtp, fileParameter, cellInstanceName, connectionCount, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, dummyRuns, staticRuns, useCyclicalForDescription, isEAFHosted: connectionCount is null)
@ -39,32 +29,6 @@ public class FileRead : Shared.FileRead, IFileRead
throw new Exception(cellInstanceConnectionName);
if (_IsDuplicator)
throw new Exception(cellInstanceConnectionName);
string barcodeHostFileShare = GetPropertyValue(cellInstanceConnectionName, modelObjectParameters, "Barcode.Host.FileShare");
if (barcodeHostFileShare != TIBCO.FileRead.BarcodeHostFileShare)
throw new NotSupportedException($"Update configuration for [{nameof(TIBCO.FileRead.BarcodeHostFileShare)}]");
string httpSelfHostConfigurationBaseAddress = GetPropertyValue(cellInstanceConnectionName, modelObjectParameters, "Http.Self.Host.Configuration.Base.Address");
if (httpSelfHostConfigurationBaseAddress != HttpSelfHostConfigurationBaseAddress)
throw new NotSupportedException($"Update configuration for [{nameof(HttpSelfHostConfigurationBaseAddress)}]");
string lsl2SQLConnectionString = GetPropertyValue(cellInstanceConnectionName, modelObjectParameters, "ConnectionString.LSL2SQL");
if (lsl2SQLConnectionString != TIBCO.FileRead.LSL2SQLConnectionString)
throw new NotSupportedException($"Update configuration for [{nameof(TIBCO.FileRead.LSL2SQLConnectionString)}]");
string metrologyFileShare = GetPropertyValue(cellInstanceConnectionName, modelObjectParameters, "Metrology.FileShare");
if (metrologyFileShare != TIBCO.FileRead.MetrologyFileShare)
throw new NotSupportedException($"Update configuration for [{nameof(TIBCO.FileRead.MetrologyFileShare)}]");
string openInsightApplicationProgrammingInterface = GetPropertyValue(cellInstanceConnectionName, modelObjectParameters, "OpenInsight.Application.Programming.Interface");
if (openInsightApplicationProgrammingInterface != OpenInsightApplicationProgrammingInterface)
throw new NotSupportedException($"Update configuration for [{nameof(OpenInsightApplicationProgrammingInterface)}]");
#if NETFRAMEWORK && NET48
if (!_IsEAFHosted)
_HttpSelfHostServer = null;
else
{
HttpSelfHostConfiguration config = new(httpSelfHostConfigurationBaseAddress);
_ = config.Routes.MapHttpRoute("API Default", "api/{controller}/{id}", new { id = RouteParameter.Optional });
_HttpSelfHostServer = new(config);
_HttpSelfHostServer.OpenAsync().Wait();
}
#endif
}
#nullable disable

View File

@ -1,18 +0,0 @@
using System.Text.Json.Serialization;
namespace Adaptation.FileHandlers.MoveAllFiles.OpenInsight;
public class BackSide
{
[JsonPropertyName("scratches")]
public int? Scratches { get; set; }
[JsonPropertyName("scratchLen")]
public int? ScratchLen { get; set; }
[JsonPropertyName("nodules")]
public object Nodules { get; set; }
[JsonPropertyName("spikes")]
public object Spikes { get; set; }
}

View File

@ -1,21 +0,0 @@
using System.Text.Json.Serialization;
namespace Adaptation.FileHandlers.MoveAllFiles.OpenInsight;
public class CleanInsp
{
[JsonPropertyName("keyId")]
public int KeyId { get; set; }
[JsonPropertyName("stage")]
public string Stage { get; set; }
[JsonPropertyName("cleans")]
public Cleans Cleans { get; set; }
[JsonPropertyName("inspection")]
public Inspection Inspection { get; set; }
[JsonPropertyName("surfScan")]
public SurfScan SurfScan { get; set; }
}

View File

@ -1,22 +0,0 @@
using System.Collections.Generic;
using System.Text.Json.Serialization;
namespace Adaptation.FileHandlers.MoveAllFiles.OpenInsight;
public class Cleans
{
[JsonPropertyName("cleanRecipe")]
public object CleanRecipe { get; set; }
[JsonPropertyName("cleanSigReq")]
public bool CleanSigReq { get; set; }
[JsonPropertyName("cleanTools")]
public List<object> CleanTools { get; set; }
[JsonPropertyName("specs")]
public Spec Specs { get; set; }
[JsonPropertyName("operations")]
public List<object> Operations { get; set; }
}

View File

@ -1,9 +0,0 @@
using System.Text.Json.Serialization;
namespace Adaptation.FileHandlers.MoveAllFiles.OpenInsight;
public class CustEpiPart
{
[JsonPropertyName("keyId")]
public string KeyId { get; set; }
}

View File

@ -1,12 +0,0 @@
using System.Text.Json.Serialization;
namespace Adaptation.FileHandlers.MoveAllFiles.OpenInsight;
public class EpiPart
{
[JsonPropertyName("keyID")]
public int KeyID { get; set; }
[JsonPropertyName("waferSize")]
public string WaferSize { get; set; }
}

View File

@ -1,33 +0,0 @@
using System.Text.Json.Serialization;
namespace Adaptation.FileHandlers.MoveAllFiles.OpenInsight;
public class FrontSide
{
[JsonPropertyName("lpd")]
public int? Lpd { get; set; }
[JsonPropertyName("scratches")]
public int? Scratches { get; set; }
[JsonPropertyName("scratchLen")]
public string ScratchLen { get; set; }
[JsonPropertyName("pits")]
public int? Pits { get; set; }
[JsonPropertyName("mounds")]
public int? Mounds { get; set; }
[JsonPropertyName("stackFaults")]
public int? StackFaults { get; set; }
[JsonPropertyName("spikes")]
public int? Spikes { get; set; }
[JsonPropertyName("spots")]
public int? Spots { get; set; }
[JsonPropertyName("blDefects")]
public int? BlDefects { get; set; }
}

View File

@ -1,27 +0,0 @@
using System.Text.Json.Serialization;
namespace Adaptation.FileHandlers.MoveAllFiles.OpenInsight;
public class Inspection
{
[JsonPropertyName("microscope")]
public bool Microscope { get; set; }
[JsonPropertyName("brightlight")]
public bool Brightlight { get; set; }
[JsonPropertyName("inspSigReq")]
public bool InspSigReq { get; set; }
[JsonPropertyName("inspInterval")]
public int? InspInterval { get; set; }
[JsonPropertyName("frontSide")]
public FrontSide FrontSide { get; set; }
[JsonPropertyName("backSide")]
public BackSide BackSide { get; set; }
[JsonPropertyName("specs")]
public Spec Specs { get; set; }
}

View File

@ -1,49 +0,0 @@
using System.Collections.Generic;
using System.Text.Json.Serialization;
namespace Adaptation.FileHandlers.MoveAllFiles.OpenInsight;
public class ProdSpec
{
// [JsonPropertyName("keyId")]
// public int KeyId { get; set; }
// [JsonPropertyName("specType")]
// public string SpecType { get; set; }
// [JsonPropertyName("status")]
// public string Status { get; set; }
// [JsonPropertyName("minutesPerWafer")]
// public double MinutesPerWafer { get; set; }
// [JsonPropertyName("proveInTime")]
// public double ProveInTime { get; set; }
// [JsonPropertyName("layerType")]
// public string LayerType { get; set; }
// [JsonPropertyName("reactorType")]
// public string ReactorType { get; set; }
// [JsonPropertyName("susceptorType")]
// public string SusceptorType { get; set; }
// [JsonPropertyName("tubePressureType")]
// public string TubePressureType { get; set; }
// [JsonPropertyName("recipeLayers")]
// public List<RecipeLayer> RecipeLayers { get; set; }
// [JsonPropertyName("prodVers")]
// public List<ProdVer> ProdVers { get; set; }
// [JsonPropertyName("epiPart")]
// public EpiPart EpiPart { get; set; }
// [JsonPropertyName("custEpiParts")]
// public List<CustEpiPart> CustEpiParts { get; set; }
[JsonPropertyName("prsStages")]
public List<PrsStage> PrsStages { get; set; }
}

View File

@ -1,9 +0,0 @@
using System.Text.Json.Serialization;
namespace Adaptation.FileHandlers.MoveAllFiles.OpenInsight;
public class ProdVer
{
[JsonPropertyName("keyId")]
public int KeyId { get; set; }
}

View File

@ -1,28 +0,0 @@
using System.Collections.Generic;
using System.Text.Json.Serialization;
namespace Adaptation.FileHandlers.MoveAllFiles.OpenInsight;
public class PrsStage
{
// [JsonPropertyName("keyId")]
// public string KeyId { get; set; }
// [JsonPropertyName("psn")]
// public int Psn { get; set; }
[JsonPropertyName("stage")]
public string Stage { get; set; }
// [JsonPropertyName("cleans")]
// public Cleans Cleans { get; set; }
// [JsonPropertyName("inspection")]
// public Inspection Inspection { get; set; }
// [JsonPropertyName("surfscan")]
// public SurfScan Surfscan { get; set; }
[JsonPropertyName("qaMetTests")]
public List<QaMetTest> QaMetTests { get; set; }
}

View File

@ -1,51 +0,0 @@
using System.Text.Json.Serialization;
namespace Adaptation.FileHandlers.MoveAllFiles.OpenInsight;
public class QaMetTest
{
[JsonPropertyName("test")]
public string Test { get; set; }
[JsonPropertyName("property")]
public string Property { get; set; }
[JsonPropertyName("propertyDesc")]
public string PropertyDesc { get; set; }
[JsonPropertyName("toolClass")]
public string ToolClass { get; set; }
[JsonPropertyName("recipe")]
public string Recipe { get; set; }
[JsonPropertyName("recipePattern")]
public string RecipePattern { get; set; }
[JsonPropertyName("min")]
public object Min { get; set; }
[JsonPropertyName("max")]
public object Max { get; set; }
[JsonPropertyName("phaseMin")]
public object PhaseMin { get; set; }
[JsonPropertyName("slots")]
public object Slots { get; set; }
[JsonPropertyName("wfrQty")]
public int? WfrQty { get; set; }
[JsonPropertyName("reactSched")]
public bool? ReactSched { get; set; }
[JsonPropertyName("interval")]
public int? Interval { get; set; }
[JsonPropertyName("start")]
public int? Start { get; set; }
[JsonPropertyName("sequence")]
public string Sequence { get; set; }
}

View File

@ -1,96 +0,0 @@
using System.Text.Json.Serialization;
namespace Adaptation.FileHandlers.MoveAllFiles.OpenInsight;
public class Rds
{
[JsonPropertyName("keyId")]
public int KeyId { get; set; }
[JsonPropertyName("reactor")]
public int Reactor { get; set; }
// [JsonPropertyName("workOrder")]
// public int WorkOrder { get; set; }
// [JsonPropertyName("cassNo")]
// public int CassNo { get; set; }
// [JsonPropertyName("combStatus")]
// public string CombStatus { get; set; }
// [JsonPropertyName("partNo")]
// public int PartNo { get; set; }
// [JsonPropertyName("PSN")]
// public int PSN { get; set; }
// [JsonPropertyName("entryId")]
// public string EntryId { get; set; }
// [JsonPropertyName("entryDtm")]
// public string EntryDtm { get; set; }
// [JsonPropertyName("preEpiSig")]
// public string PreEpiSig { get; set; }
// [JsonPropertyName("preEpiSigDtm")]
// public string PreEpiSigDtm { get; set; }
// [JsonPropertyName("operatorIn")]
// public string OperatorIn { get; set; }
// [JsonPropertyName("dtmIn")]
// public string DtmIn { get; set; }
// [JsonPropertyName("operatorOut")]
// public string OperatorOut { get; set; }
// [JsonPropertyName("dtmOut")]
// public string DtmOut { get; set; }
// [JsonPropertyName("postEpiSig")]
// public string PostEpiSig { get; set; }
// [JsonPropertyName("postEpiSigDtm")]
// public string PostEpiSigDtm { get; set; }
// [JsonPropertyName("supVerSig")]
// public string SupVerSig { get; set; }
// [JsonPropertyName("supVerSigDtm")]
// public string SupVerSigDtm { get; set; }
// [JsonPropertyName("shipDtm")]
// public object ShipDtm { get; set; }
// [JsonPropertyName("subPartNo")]
// public int SubPartNo { get; set; }
// [JsonPropertyName("shipNo")]
// public object ShipNo { get; set; }
// [JsonPropertyName("cassWaferQty")]
// public int CassWaferQty { get; set; }
// [JsonPropertyName("loadLockSide")]
// public string LoadLockSide { get; set; }
// [JsonPropertyName("waferSize")]
// public string WaferSize { get; set; }
// [JsonPropertyName("reactorType")]
// public string ReactorType { get; set; }
[JsonPropertyName("prodSpec")]
public ProdSpec ProdSpec { get; set; }
// [JsonPropertyName("cleanInsp")]
// public List<CleanInsp> CleanInsp { get; set; }
// [JsonPropertyName("woMatQA")]
// public WoMatQA WoMatQA { get; set; }
// [JsonPropertyName("rdsLayers")]
// public List<RdsLayer> RdsLayers { get; set; }
}

View File

@ -1,63 +0,0 @@
using System.Text.Json.Serialization;
namespace Adaptation.FileHandlers.MoveAllFiles.OpenInsight;
public class RdsLayer
{
[JsonPropertyName("keyID")]
public string KeyID { get; set; }
[JsonPropertyName("EpiTime")]
public double EpiTime { get; set; }
[JsonPropertyName("DiluentAdjParam")]
public int DiluentAdjParam { get; set; }
[JsonPropertyName("DopantFlow")]
public double DopantFlow { get; set; }
[JsonPropertyName("HCLFlow")]
public object HCLFlow { get; set; }
[JsonPropertyName("BakeTime")]
public string BakeTime { get; set; }
[JsonPropertyName("EpiH2Flow")]
public int EpiH2Flow { get; set; }
[JsonPropertyName("TCSFlow")]
public int TCSFlow { get; set; }
[JsonPropertyName("DCSFlow")]
public object DCSFlow { get; set; }
[JsonPropertyName("FOffset")]
public int FOffset { get; set; }
[JsonPropertyName("SOffset")]
public int SOffset { get; set; }
[JsonPropertyName("ROffset")]
public int ROffset { get; set; }
[JsonPropertyName("Etch1")]
public string Etch1 { get; set; }
[JsonPropertyName("Etch2")]
public string Etch2 { get; set; }
[JsonPropertyName("Etch3")]
public string Etch3 { get; set; }
[JsonPropertyName("AUX1")]
public object AUX1 { get; set; }
[JsonPropertyName("AUX2")]
public object AUX2 { get; set; }
[JsonPropertyName("ULTemp")]
public int ULTemp { get; set; }
[JsonPropertyName("SuscEtch")]
public object SuscEtch { get; set; }
}

View File

@ -1,69 +0,0 @@
using System.Text.Json.Serialization;
namespace Adaptation.FileHandlers.MoveAllFiles.OpenInsight;
public class RecipeLayer
{
[JsonPropertyName("layerNo")]
public int LayerNo { get; set; }
[JsonPropertyName("layerId")]
public string LayerId { get; set; }
[JsonPropertyName("layerType")]
public string LayerType { get; set; }
[JsonPropertyName("layerRecipe")]
public int LayerRecipe { get; set; }
[JsonPropertyName("layerDopant")]
public string LayerDopant { get; set; }
[JsonPropertyName("layerThickMin")]
public double LayerThickMin { get; set; }
[JsonPropertyName("layerThickTarget")]
public double LayerThickTarget { get; set; }
[JsonPropertyName("layerThickMax")]
public double LayerThickMax { get; set; }
[JsonPropertyName("layerThickUnits")]
public string LayerThickUnits { get; set; }
[JsonPropertyName("layerThickAMin")]
public object LayerThickAMin { get; set; }
[JsonPropertyName("layerThickATarget")]
public object LayerThickATarget { get; set; }
[JsonPropertyName("layerThickAMaxes")]
public object LayerThickAMaxes { get; set; }
[JsonPropertyName("layerThickAUnits")]
public object LayerThickAUnits { get; set; }
[JsonPropertyName("layerResMin")]
public double LayerResMin { get; set; }
[JsonPropertyName("layerResTarget")]
public int LayerResTarget { get; set; }
[JsonPropertyName("layerResMax")]
public double LayerResMax { get; set; }
[JsonPropertyName("layerResUnits")]
public string LayerResUnits { get; set; }
[JsonPropertyName("layerSResMin")]
public object LayerSResMin { get; set; }
[JsonPropertyName("layerSResTarget")]
public object LayerSResTarget { get; set; }
[JsonPropertyName("layerSResMax")]
public object LayerSResMax { get; set; }
[JsonPropertyName("layerSResUnits")]
public object LayerSResUnits { get; set; }
}

View File

@ -1,15 +0,0 @@
using System.Text.Json.Serialization;
namespace Adaptation.FileHandlers.MoveAllFiles.OpenInsight;
public class Root
{
[JsonPropertyName("rds")]
public Rds Rds { get; set; }
[JsonPropertyName("_links")]
public object Links { get; set; }
[JsonPropertyName("_class")]
public string Class { get; set; }
}

View File

@ -1,73 +0,0 @@
using System.Collections.Generic;
using System.Text.Json.Serialization;
namespace Adaptation.FileHandlers.MoveAllFiles.OpenInsight;
public class Spec
{
[JsonPropertyName("recipe")]
public string Recipe { get; set; }
[JsonPropertyName("defect")]
public int Defect { get; set; }
[JsonPropertyName("haze")]
public int Haze { get; set; }
[JsonPropertyName("sampleQty")]
public int SampleQty { get; set; }
[JsonPropertyName("tools")]
public List<object> Tools { get; set; }
[JsonPropertyName("recipes")]
public List<object> Recipes { get; set; }
[JsonPropertyName("microscopeReq")]
public bool MicroscopeReq { get; set; }
[JsonPropertyName("brightlightReq")]
public bool BrightlightReq { get; set; }
[JsonPropertyName("lpd")]
public int Lpd { get; set; }
[JsonPropertyName("scratches")]
public int Scratches { get; set; }
[JsonPropertyName("scratchLen")]
public int ScratchLen { get; set; }
[JsonPropertyName("pits")]
public int Pits { get; set; }
[JsonPropertyName("mounds")]
public int Mounds { get; set; }
[JsonPropertyName("stackFaults")]
public int StackFaults { get; set; }
[JsonPropertyName("spikes")]
public int Spikes { get; set; }
[JsonPropertyName("spots")]
public int Spots { get; set; }
[JsonPropertyName("fov")]
public int Fov { get; set; }
[JsonPropertyName("blDefects")]
public int BlDefects { get; set; }
[JsonPropertyName("bsideScratches")]
public int BsideScratches { get; set; }
[JsonPropertyName("bsideScratchLen")]
public int BsideScratchLen { get; set; }
[JsonPropertyName("bsideNodules")]
public object BsideNodules { get; set; }
[JsonPropertyName("bsideSpikes")]
public object BsideSpikes { get; set; }
}

View File

@ -1,13 +0,0 @@
using System.Collections.Generic;
using System.Text.Json.Serialization;
namespace Adaptation.FileHandlers.MoveAllFiles.OpenInsight;
public class SurfScan
{
[JsonPropertyName("surfscanSigReq")]
public bool SurfscanSigReq { get; set; }
[JsonPropertyName("surfscanRecipes")]
public List<SurfscanRecipe> SurfscanRecipes { get; set; }
}

View File

@ -1,10 +0,0 @@
using System.Collections.Generic;
using System.Text.Json.Serialization;
namespace Adaptation.FileHandlers.MoveAllFiles.OpenInsight;
public class SurfScan2
{
[JsonPropertyName("specs")]
public List<Spec> Specs { get; set; }
}

View File

@ -1,18 +0,0 @@
using System.Text.Json.Serialization;
namespace Adaptation.FileHandlers.MoveAllFiles.OpenInsight;
public class SurfscanRecipe
{
[JsonPropertyName("recipe")]
public string Recipe { get; set; }
[JsonPropertyName("defects")]
public int Defects { get; set; }
[JsonPropertyName("haze")]
public int Haze { get; set; }
[JsonPropertyName("sampleSize")]
public int SampleSize { get; set; }
}

View File

@ -1,73 +0,0 @@
using System.Collections.Generic;
using System.Text.Json.Serialization;
namespace Adaptation.FileHandlers.MoveAllFiles.OpenInsight;
public class Test
{
[JsonPropertyName("stage")]
public string Stage { get; set; }
[JsonPropertyName("profile")]
public string Profile { get; set; }
[JsonPropertyName("prop")]
public string Prop { get; set; }
[JsonPropertyName("toolClass")]
public string ToolClass { get; set; }
[JsonPropertyName("recipe")]
public string Recipe { get; set; }
[JsonPropertyName("recipePattern")]
public string RecipePattern { get; set; }
[JsonPropertyName("specMin")]
public double SpecMin { get; set; }
[JsonPropertyName("specMax")]
public double SpecMax { get; set; }
[JsonPropertyName("specSlot")]
public object SpecSlot { get; set; }
[JsonPropertyName("testSlot")]
public object TestSlot { get; set; }
[JsonPropertyName("testResult")]
public List<double> TestResult { get; set; }
[JsonPropertyName("testSig")]
public string TestSig { get; set; }
[JsonPropertyName("testSigDtm")]
public string TestSigDtm { get; set; }
[JsonPropertyName("specStdDev")]
public object SpecStdDev { get; set; }
[JsonPropertyName("testStdDev")]
public object TestStdDev { get; set; }
[JsonPropertyName("specWfrQty")]
public int SpecWfrQty { get; set; }
[JsonPropertyName("dataPoints")]
public List<List<object>> DataPoints { get; set; }
[JsonPropertyName("testResultMin")]
public List<object> TestResultMin { get; set; }
[JsonPropertyName("testResultMax")]
public List<object> TestResultMax { get; set; }
[JsonPropertyName("testOutOfSpec")]
public bool TestOutOfSpec { get; set; }
[JsonPropertyName("phaseMin")]
public object PhaseMin { get; set; }
[JsonPropertyName("failReason")]
public object FailReason { get; set; }
}

View File

@ -1,13 +0,0 @@
using System.Collections.Generic;
using System.Text.Json.Serialization;
namespace Adaptation.FileHandlers.MoveAllFiles.OpenInsight;
public class WoMatQA
{
[JsonPropertyName("keyId")]
public string KeyId { get; set; }
[JsonPropertyName("tests")]
public List<Test> Tests { get; set; }
}