using System.Text.Json.Serialization; namespace Adaptation.FileHandlers.pcl; #nullable enable internal class Row { public Row(Run run, int i) { Operator = run.Header.Operator; StartVoltage = run.Header.StartVoltage; Wafer = run.Header.Wafer; StopVoltage = run.Header.StopVoltage; Lot = run.Header.Lot; RampRate = run.Header.RampRate; Plan = run.Header.Plan; GLimit = run.Header.GLimit; Date = run.Header.Date; Time = run.Header.Time; SetupFile = run.Header.SetupFile; WaferSize = run.Header.WaferSize; Folder = run.Header.Folder; Ccomp = run.Header.Ccomp; Pattern = run.Header.Pattern; Area = run.Header.Area; CondType = run.Header.CondType; RhoMethod = run.Header.RhoMethod; Model = run.Header.Model; if (run.Summary.Mean is null) { MeanNAvg = string.Empty; MeanNsl = string.Empty; MeanVd = string.Empty; MeanFlatZ = string.Empty; MeanRhoAvg = string.Empty; MeanRhosl = string.Empty; MeanPhase = string.Empty; MeanGrade = string.Empty; MeanRs = string.Empty; } else { MeanNAvg = run.Summary.Mean.NAvg; MeanNsl = run.Summary.Mean.Nsl; MeanVd = run.Summary.Mean.Vd; MeanFlatZ = run.Summary.Mean.FlatZ; MeanRhoAvg = run.Summary.Mean.RhoAvg; MeanRhosl = run.Summary.Mean.Rhosl; MeanPhase = run.Summary.Mean.Phase; MeanGrade = run.Summary.Mean.Grade; MeanRs = run.Summary.Mean.Rs; } if (run.Summary.StandardDeviationPercentage is null) { StandardDeviationPercentageNAvg = string.Empty; StandardDeviationPercentageNsl = string.Empty; StandardDeviationPercentageVd = string.Empty; StandardDeviationPercentageFlatZ = string.Empty; StandardDeviationPercentageRhoAvg = string.Empty; StandardDeviationPercentageRhosl = string.Empty; StandardDeviationPercentagePhase = string.Empty; StandardDeviationPercentageGrade = string.Empty; StandardDeviationPercentageRs = string.Empty; } else { StandardDeviationPercentageNAvg = run.Summary.StandardDeviationPercentage.NAvg; StandardDeviationPercentageNsl = run.Summary.StandardDeviationPercentage.Nsl; StandardDeviationPercentageVd = run.Summary.StandardDeviationPercentage.Vd; StandardDeviationPercentageFlatZ = run.Summary.StandardDeviationPercentage.FlatZ; StandardDeviationPercentageRhoAvg = run.Summary.StandardDeviationPercentage.RhoAvg; StandardDeviationPercentageRhosl = run.Summary.StandardDeviationPercentage.Rhosl; StandardDeviationPercentagePhase = run.Summary.StandardDeviationPercentage.Phase; StandardDeviationPercentageGrade = run.Summary.StandardDeviationPercentage.Grade; StandardDeviationPercentageRs = run.Summary.StandardDeviationPercentage.Rs; } if (run.Summary.RadialGradient is null) { RadialGradientNAvg = string.Empty; RadialGradientNsl = string.Empty; RadialGradientVd = string.Empty; RadialGradientFlatZ = string.Empty; RadialGradientRhoAvg = string.Empty; RadialGradientRhosl = string.Empty; RadialGradientPhase = string.Empty; RadialGradientGrade = string.Empty; RadialGradientRs = string.Empty; } else { RadialGradientNAvg = run.Summary.RadialGradient.NAvg; RadialGradientNsl = run.Summary.RadialGradient.Nsl; RadialGradientVd = run.Summary.RadialGradient.Vd; RadialGradientFlatZ = run.Summary.RadialGradient.FlatZ; RadialGradientRhoAvg = run.Summary.RadialGradient.RhoAvg; RadialGradientRhosl = run.Summary.RadialGradient.Rhosl; RadialGradientPhase = run.Summary.RadialGradient.Phase; RadialGradientGrade = run.Summary.RadialGradient.Grade; RadialGradientRs = run.Summary.RadialGradient.Rs; } Site = run.Points[i].Site; X = run.Points[i].X; Y = run.Points[i].Y; NAvg = run.Points[i].NAvg; RhoAvg = run.Points[i].RhoAvg; Nsl = run.Points[i].Nsl; Rhosl = run.Points[i].Rhosl; Vd = run.Points[i].Vd; Phase = run.Points[i].Phase; FlatZ = run.Points[i].FlatZ; Grade = run.Points[i].Grade; XLeft = run.Points[i].XLeft; XRight = run.Points[i].XRight; BottomY = run.Points[i].BottomY; TopY = run.Points[i].TopY; } public string Operator { get; } public string StartVoltage { get; } public string Wafer { get; } public string StopVoltage { get; } public string Lot { get; } public string RampRate { get; } public string Plan { get; } public string GLimit { get; } public string Date { get; } public string Time { get; } public string SetupFile { get; } public string WaferSize { get; } public string Folder { get; } public string Ccomp { get; } public string Pattern { get; } public string Area { get; } public string CondType { get; } public string RhoMethod { get; } public string Model { get; } // public string MeanNAvg { get; } public string MeanNsl { get; } public string MeanVd { get; } public string MeanFlatZ { get; } public string MeanRhoAvg { get; } public string MeanRhosl { get; } public string MeanPhase { get; } public string MeanGrade { get; } public string MeanRs { get; } // public string StandardDeviationPercentageNAvg { get; } public string StandardDeviationPercentageNsl { get; } public string StandardDeviationPercentageVd { get; } public string StandardDeviationPercentageFlatZ { get; } public string StandardDeviationPercentageRhoAvg { get; } public string StandardDeviationPercentageRhosl { get; } public string StandardDeviationPercentagePhase { get; } public string StandardDeviationPercentageGrade { get; } public string StandardDeviationPercentageRs { get; } // public string RadialGradientNAvg { get; } public string RadialGradientNsl { get; } public string RadialGradientVd { get; } public string RadialGradientFlatZ { get; } public string RadialGradientRhoAvg { get; } public string RadialGradientRhosl { get; } public string RadialGradientPhase { get; } public string RadialGradientGrade { get; } public string RadialGradientRs { get; } // public string Site { get; } public string X { get; } public string Y { get; } public string NAvg { get; } public string RhoAvg { get; } public string Nsl { get; } public string Rhosl { get; } public string Vd { get; } public string Phase { get; } public string FlatZ { get; } public string Grade { get; } public string XLeft { get; } public string XRight { get; } public string BottomY { get; } public string TopY { get; } } [JsonSourceGenerationOptions(WriteIndented = true)] [JsonSerializable(typeof(Row))] internal partial class RowSourceGenerationContext : JsonSerializerContext { }