FlagDuplicates

CA1510
Complete
This commit is contained in:
Mike Phares 2024-11-18 14:25:30 -07:00
parent dcaaba3614
commit 8ae8386b30
10 changed files with 51 additions and 83 deletions

View File

@ -92,8 +92,9 @@ csharp_using_directive_placement = outside_namespace
dotnet_code_quality_unused_parameters = all dotnet_code_quality_unused_parameters = all
dotnet_code_quality_unused_parameters = non_public # IDE0060: Remove unused parameter dotnet_code_quality_unused_parameters = non_public # IDE0060: Remove unused parameter
dotnet_code_quality.CAXXXX.api_surface = private, internal dotnet_code_quality.CAXXXX.api_surface = private, internal
dotnet_diagnostic.CA1510.severity = none # CA1510: Use 'ArgumentNullException.ThrowIfNull' instead of explicitly throwing a new exception instance
dotnet_diagnostic.CA1816.severity = none # CA1816: Call GC.SuppressFinalize correctly dotnet_diagnostic.CA1816.severity = none # CA1816: Call GC.SuppressFinalize correctly
dotnet_diagnostic.CA1825.severity = warning # CA1823: Avoid zero-length array allocations dotnet_diagnostic.CA1825.severity = warning # CA1825: Avoid zero-length array allocations
dotnet_diagnostic.CA1829.severity = warning # CA1829: Use Length/Count property instead of Count() when available dotnet_diagnostic.CA1829.severity = warning # CA1829: Use Length/Count property instead of Count() when available
dotnet_diagnostic.CA1834.severity = warning # CA1834: Consider using 'StringBuilder.Append(char)' when applicable dotnet_diagnostic.CA1834.severity = warning # CA1834: Consider using 'StringBuilder.Append(char)' when applicable
dotnet_diagnostic.CA1846.severity = none # CA1846: Prefer AsSpan over Substring dotnet_diagnostic.CA1846.severity = none # CA1846: Prefer AsSpan over Substring

View File

@ -78,7 +78,7 @@
"args": [ "args": [
"/target:Build", "/target:Build",
"/restore:True", "/restore:True",
"/p:RestoreSources=https://artifactory.intra.infineon.com/artifactory/api/nuget/ngt-fi-package-main-vir/%3Bhttps://packagemanagement.eu.infineon.com:4430/api/v2/%3Bhttps://tfs.intra.infineon.com/tfs/ManufacturingIT/_packaging/eaf/nuget/v3/index.json%3Bhttps://tfs.intra.infineon.com/tfs/FactoryIntegration/_packaging/EAF%40Local/nuget/v3/index.json%3Bhttps://api.nuget.org/v3/index.json", "/p:RestoreSources=https://artifactory.intra.infineon.com/artifactory/api/nuget/ngt-fi-package-main-vir/%3Bhttps://packagemanagement.eu.infineon.com:4430/api/v2/%3Bhttps://tfs.intra.infineon.com/tfs/FactoryIntegration/_packaging/EAF/nuget/v3/index.json%3Bhttps://tfs.intra.infineon.com/tfs/FactoryIntegration/_packaging/EAF%40Local/nuget/v3/index.json%3Bhttps://api.nuget.org/v3/index.json",
"/detailedsummary", "/detailedsummary",
"/consoleloggerparameters:PerformanceSummary;ErrorsOnly;", "/consoleloggerparameters:PerformanceSummary;ErrorsOnly;",
"/property:Configuration=Debug;TargetFrameworkVersion=v4.8", "/property:Configuration=Debug;TargetFrameworkVersion=v4.8",

View File

@ -244,14 +244,9 @@ public class FromIQS
} }
if (collection.Count > 0) if (collection.Count > 0)
{ {
try string commandText = GetCommandText(collection);
{ File.WriteAllText("D:/.sql", commandText);
string commandText = GetCommandText(collection); _ = ExecuteNonQuery(connectionString, commandText);
File.WriteAllText("D:/.sql", commandText);
_ = ExecuteNonQuery(connectionString, commandText);
}
catch (Exception)
{ }
} }
} }
} }
@ -271,9 +266,15 @@ public class FromIQS
else else
dateTime = logistics.DateTimeFromSequence; dateTime = logistics.DateTimeFromSequence;
commandText = GetCommandText(dateTime); commandText = GetCommandText(dateTime);
stringBuilder = GetForJsonPath(connectionString, commandText); try
if (stringBuilder.Length > 0) {
FlagDuplicates(connectionString, stringBuilder.ToString()); stringBuilder = GetForJsonPath(connectionString, commandText);
if (stringBuilder.Length > 0)
FlagDuplicates(connectionString, stringBuilder.ToString());
}
catch (Exception)
{ stringBuilder = new(); }
_ = stringBuilder.Clear();
commandText = GetCommandText(logistics, description, dateTime.ToString("yyyy-MM-dd HH:mm:ss"), subGroupId: null); commandText = GetCommandText(logistics, description, dateTime.ToString("yyyy-MM-dd HH:mm:ss"), subGroupId: null);
for (short i = 0; i < short.MaxValue; i++) for (short i = 0; i < short.MaxValue; i++)
{ {

View File

@ -20,20 +20,20 @@ internal class Complete
public Summary Summary { get; } public Summary Summary { get; }
public ReadOnlyCollection<Point> Points { get; } public ReadOnlyCollection<Point> Points { get; }
public static Complete? Get(int take, string site, string multiple, string summaryLine, string lastUnits, string lastUnitsB, ReadOnlyCollection<string> lines) public static Complete? Get(Constant constant, ReadOnlyCollection<string> lines)
{ {
Complete? result; Complete? result;
Header? header = Header.Get(lines, site, summaryLine); Header? header = Header.Get(constant, lines);
if (header is null) if (header is null)
result = null; result = null;
else else
{ {
Summary? summary = SummarySegment.Get(lines, site, summaryLine, lastUnits); Summary? summary = SummarySegment.Get(constant, lines);
if (summary is null) if (summary is null)
result = null; result = null;
else else
{ {
ReadOnlyCollection<Point> points = Point.GetCollection(lines, take, site, multiple, summaryLine, lastUnitsB) ?? throw new NullReferenceException(nameof(summary)); ReadOnlyCollection<Point> points = Point.GetCollection(constant, lines) ?? throw new NullReferenceException(nameof(summary));
if (points.Count == 0) if (points.Count == 0)
result = null; result = null;
else else

View File

@ -0,0 +1,13 @@
namespace Adaptation.FileHandlers.pcl;
internal class Constant
{
public int Take { get; } = 12;
public string Site { get; } = "Site: ";
public string Multiple { get; } = "MULTIPLE";
public string SummaryLine { get; } = "SUMMARY A A";
public string LastUnits { get; } = "Flat Z: Grade : % Flat Z: Grade : % Flat Z: Grade : %";
public string LastUnitsB { get; } = "Flat Z: Grade : % Flat Z: Grade : % Flat Z: Grade : %";
}

View File

@ -10,25 +10,6 @@ namespace Adaptation.FileHandlers.pcl;
#nullable enable #nullable enable
internal class Header internal class Header
// internal record Header([property: JsonPropertyName("Operator")] string Operator,
// [property: JsonPropertyName("Start Voltage")] string StartVoltage,
// [property: JsonPropertyName("Wafer")] string Wafer,
// [property: JsonPropertyName("Stop Voltage")] string StopVoltage,
// [property: JsonPropertyName("Lot")] string Lot,
// [property: JsonPropertyName("Ramp Rate")] string RampRate,
// [property: JsonPropertyName("Plan")] string Plan,
// [property: JsonPropertyName("G limit")] string GLimit,
// [property: JsonPropertyName("Date")] string Date,
// [property: JsonPropertyName("Time")] string Time,
// [property: JsonPropertyName("Setup File")] string SetupFile,
// [property: JsonPropertyName("Wafer size")] string WaferSize,
// [property: JsonPropertyName("Folder")] string Folder,
// [property: JsonPropertyName("Ccomp")] string Ccomp,
// [property: JsonPropertyName("Pattern")] string Pattern,
// [property: JsonPropertyName("Area")] string Area,
// [property: JsonPropertyName("Cond Type")] string CondType,
// [property: JsonPropertyName("Rho Method")] string RhoMethod,
// [property: JsonPropertyName("Model")] string Model)
{ {
[JsonConstructor] [JsonConstructor]
@ -128,7 +109,7 @@ internal class Header
return new(results); return new(results);
} }
public static Header? Get(ReadOnlyCollection<string> lines, string site, string summaryLine) public static Header? Get(Constant constant, ReadOnlyCollection<string> lines)
{ {
Header? result; Header? result;
string json; string json;
@ -142,11 +123,11 @@ internal class Header
ReadOnlyCollection<JsonProperty> jsonProperties = GetJsonProperties(); ReadOnlyCollection<JsonProperty> jsonProperties = GetJsonProperties();
foreach (string line in lines) foreach (string line in lines)
{ {
if (line.Contains(site)) if (line.Contains(constant.Site))
found = true; found = true;
if (!found) if (!found)
continue; continue;
if (line == summaryLine) if (line == constant.SummaryLine)
break; break;
foreach (JsonProperty jsonProperty in jsonProperties) foreach (JsonProperty jsonProperty in jsonProperties)
{ {

View File

@ -8,21 +8,6 @@ namespace Adaptation.FileHandlers.pcl;
#nullable enable #nullable enable
internal class Point internal class Point
// internal record Point([property: JsonPropertyName("Site")] string Site,
// [property: JsonPropertyName("X")] string X,
// [property: JsonPropertyName("Y")] string Y,
// [property: JsonPropertyName("Navg")] string NAvg,
// [property: JsonPropertyName("Rhoavg")] string RhoAvg,
// [property: JsonPropertyName("Nsl")] string Nsl,
// [property: JsonPropertyName("Rhosl")] string Rhosl,
// [property: JsonPropertyName("Vd")] string Vd,
// [property: JsonPropertyName("Phase")] string Phase,
// [property: JsonPropertyName("Flat Z")] string FlatZ,
// [property: JsonPropertyName("Grade")] string Grade,
// [property: JsonPropertyName("X Left")] string XLeft,
// [property: JsonPropertyName("X Right")] string XRight,
// [property: JsonPropertyName("Bottom Y")] string BottomY,
// [property: JsonPropertyName("Top Y")] string TopY)
{ {
public Point(string site, string x, string y, string nAvg, string rhoAvg, string nsl, string rhosl, string vd, string phase, string flatZ, string grade, string xLeft, string xRight, string bottomY, string topY) public Point(string site, string x, string y, string nAvg, string rhoAvg, string nsl, string rhosl, string vd, string phase, string flatZ, string grade, string xLeft, string xRight, string bottomY, string topY)
@ -77,7 +62,7 @@ internal class Point
string.Empty, string.Empty,
string.Empty); string.Empty);
public static ReadOnlyCollection<Point> GetCollection(ReadOnlyCollection<string> lines, int take, string site, string multiple, string summaryLine, string lastUnitsB) public static ReadOnlyCollection<Point> GetCollection(Constant constant, ReadOnlyCollection<string> lines)
{ {
List<Point> results = new(); List<Point> results = new();
string s; string s;
@ -92,22 +77,22 @@ internal class Point
for (int i = 0; i < lines.Count; i++) for (int i = 0; i < lines.Count; i++)
{ {
line = lines[i]; line = lines[i];
segmentsC = line.Split(new string[] { site }, StringSplitOptions.RemoveEmptyEntries); segmentsC = line.Split(new string[] { constant.Site }, StringSplitOptions.RemoveEmptyEntries);
if (segmentsC.Length > 1) if (segmentsC.Length > 1)
{ {
foreach (string segment in segmentsC) foreach (string segment in segmentsC)
sites.Add(segment.Trim()); sites.Add(segment.Trim());
} }
if (line == summaryLine) if (line == constant.SummaryLine)
{ {
sites.RemoveAt(0); sites.RemoveAt(0);
found = true; found = true;
} }
if (!found) if (!found)
continue; continue;
if (!foundB && line.Contains(multiple)) if (!foundB && line.Contains(constant.Multiple))
foundB = true; foundB = true;
if (line != lastUnitsB) if (line != constant.LastUnitsB)
continue; continue;
if (foundB) if (foundB)
{ {
@ -117,7 +102,7 @@ internal class Point
for (int j = 0; j < sites.Count; j++) for (int j = 0; j < sites.Count; j++)
{ {
s = sites[j]; s = sites[j];
if (i + take > lines.Count) if (i + constant.Take > lines.Count)
break; break;
segments = s.Split(new string[] { "(", ",", ")" }, StringSplitOptions.None); segments = s.Split(new string[] { "(", ",", ")" }, StringSplitOptions.None);
if (segments.Length < 2) if (segments.Length < 2)
@ -141,7 +126,7 @@ internal class Point
bottomY: lines[i + 11].Trim(), bottomY: lines[i + 11].Trim(),
topY: lines[i + 12].Trim()); topY: lines[i + 12].Trim());
results.Add(point); results.Add(point);
i += take; i += constant.Take;
} }
sites.Clear(); sites.Clear();
} }

View File

@ -536,20 +536,15 @@ public class ProcessData : IProcessData
private Complete? GetComplete(string altHeaderFileName) private Complete? GetComplete(string altHeaderFileName)
{ {
Complete? result; Complete? result;
const int take = 12; Constant constant = new();
const string site = "Site: ";
const string multiple = "MULTIPLE";
const string summaryLine = "SUMMARY A A";
const string lastUnits = "Flat Z: Grade : % Flat Z: Grade : % Flat Z: Grade : %";
const string lastUnitsB = "Flat Z: Grade : % Flat Z: Grade : % Flat Z: Grade : %";
string[] lines = File.ReadAllLines(altHeaderFileName); string[] lines = File.ReadAllLines(altHeaderFileName);
ReadOnlyCollection<string> collection = new(lines); ReadOnlyCollection<string> collection = new(lines);
if (collection.Count > take) if (collection.Count > constant.Take)
result = Complete.Get(take, site, multiple, summaryLine, lastUnits, lastUnitsB, collection); result = Complete.Get(constant, collection);
else else
{ {
result = null; result = null;
_Log.Warn($"File {altHeaderFileName} has less than {take} collection"); _Log.Warn($"File {altHeaderFileName} has less than {constant.Take} collection");
} }
return result; return result;
} }

View File

@ -10,15 +10,6 @@ namespace Adaptation.FileHandlers.pcl;
#nullable enable #nullable enable
internal class SummarySegment internal class SummarySegment
// internal record SummarySegment([property: JsonPropertyName("Navg")] string NAvg,
// [property: JsonPropertyName("Nsl")] string Nsl,
// [property: JsonPropertyName("Vd")] string Vd,
// [property: JsonPropertyName("@ Flat Z")] string FlatZ,
// [property: JsonPropertyName("Rhoavg")] string RhoAvg,
// [property: JsonPropertyName("Rhosl")] string Rhosl,
// [property: JsonPropertyName("Phase")] string Phase,
// [property: JsonPropertyName("Grade")] string Grade,
// [property: JsonPropertyName("@ Rs")] string Rs)
{ {
public SummarySegment(string nAvg, string nsl, string vd, string flatZ, string rhoAvg, string rhosl, string phase, string grade, string rs) public SummarySegment(string nAvg, string nsl, string vd, string flatZ, string rhoAvg, string rhosl, string phase, string grade, string rs)
@ -66,7 +57,7 @@ internal class SummarySegment
return new(results); return new(results);
} }
public static Summary? Get(ReadOnlyCollection<string> lines, string site, string summaryLine, string lastUnits) public static Summary? Get(Constant constant, ReadOnlyCollection<string> lines)
{ {
Summary? result; Summary? result;
string json; string json;
@ -79,13 +70,13 @@ internal class SummarySegment
ReadOnlyCollection<JsonProperty> jsonProperties = GetJsonProperties(); ReadOnlyCollection<JsonProperty> jsonProperties = GetJsonProperties();
foreach (string line in lines) foreach (string line in lines)
{ {
if (line == summaryLine) if (line == constant.SummaryLine)
found = true; found = true;
if (!found) if (!found)
continue; continue;
if (line.Contains(site)) if (line.Contains(constant.Site))
break; break;
if (line.Contains(lastUnits)) if (line.Contains(constant.LastUnits))
break; break;
foreach (JsonProperty jsonProperty in jsonProperties) foreach (JsonProperty jsonProperty in jsonProperties)
{ {

View File

@ -117,6 +117,7 @@
<Compile Include="Adaptation\FileHandlers\OpenInsightMetrologyViewer\WSRequest.cs" /> <Compile Include="Adaptation\FileHandlers\OpenInsightMetrologyViewer\WSRequest.cs" />
<Compile Include="Adaptation\FileHandlers\OpenInsightMetrologyViewerAttachments\FileRead.cs" /> <Compile Include="Adaptation\FileHandlers\OpenInsightMetrologyViewerAttachments\FileRead.cs" />
<Compile Include="Adaptation\FileHandlers\pcl\Complete.cs" /> <Compile Include="Adaptation\FileHandlers\pcl\Complete.cs" />
<Compile Include="Adaptation\FileHandlers\pcl\Constant.cs" />
<Compile Include="Adaptation\FileHandlers\pcl\Description.cs" /> <Compile Include="Adaptation\FileHandlers\pcl\Description.cs" />
<Compile Include="Adaptation\FileHandlers\pcl\Descriptor.cs" /> <Compile Include="Adaptation\FileHandlers\pcl\Descriptor.cs" />
<Compile Include="Adaptation\FileHandlers\pcl\Detail.cs" /> <Compile Include="Adaptation\FileHandlers\pcl\Detail.cs" />