diff --git a/Adaptation/.vscode/format-report.json b/Adaptation/.vscode/format-report.json new file mode 100644 index 0000000..0aee6d7 --- /dev/null +++ b/Adaptation/.vscode/format-report.json @@ -0,0 +1,20 @@ +[ + { + "DocumentId": { + "ProjectId": { + "Id": "36ce7503-a7d8-470b-8576-22756424c451" + }, + "Id": "fcfbf07c-6987-4353-afb3-7491fde8d564" + }, + "FileName": "WS.cs", + "FilePath": "T:\\MET08THFTIRQS408M\\06_SourceCode\\MET08THFTIRQS408M\\Adaptation\\Shared\\Metrology\\WS.cs", + "FileChanges": [ + { + "LineNumber": 1, + "CharNumber": 1, + "DiagnosticId": "IMPORTS", + "FormatDescription": "Fix imports ordering." + } + ] + } +] \ No newline at end of file diff --git a/Adaptation/.vscode/launch.json b/Adaptation/.vscode/launch.json new file mode 100644 index 0000000..4d1e0fa --- /dev/null +++ b/Adaptation/.vscode/launch.json @@ -0,0 +1,10 @@ +{ + "configurations": [ + { + "name": ".NET Core Attach", + "type": "coreclr", + "request": "attach", + "processId": 3316 + } + ] +} diff --git a/Adaptation/.vscode/settings.json b/Adaptation/.vscode/settings.json index 54aa980..baf51b2 100644 --- a/Adaptation/.vscode/settings.json +++ b/Adaptation/.vscode/settings.json @@ -2,12 +2,16 @@ "cSpell.words": [ "BIORAD", "CICN", + "datauniqueid", "EQPT", + "headerid", "Hmmssffff", "ipdsf", "ISMTP", "messa", + "ntities", "PDSF", - "THFTIRQS" + "THFTIRQS", + "uctor" ] } \ No newline at end of file diff --git a/Adaptation/Eaf/Core/Backbone.cs b/Adaptation/Eaf/Core/Backbone.cs index c4d294d..f39f081 100644 --- a/Adaptation/Eaf/Core/Backbone.cs +++ b/Adaptation/Eaf/Core/Backbone.cs @@ -6,6 +6,11 @@ namespace Adaptation.Eaf.Core; public class Backbone { + +#pragma warning disable CA1822 +#pragma warning disable CA2254 +#pragma warning disable IDE0060 + public const string STATE_ERROR = "Error"; public const string STATE_OFFLINE = "Offline"; public const string STATE_RUNNING = "Running"; @@ -44,4 +49,5 @@ public class Backbone protected void CloseConnectionOfComponents(List components) { } protected virtual void StopAllComponents() { } protected void StopComponents(List components) { } + } \ No newline at end of file diff --git a/Adaptation/Eaf/Core/Smtp/EmailMessage.cs b/Adaptation/Eaf/Core/Smtp/EmailMessage.cs index 7514985..e16b8aa 100644 --- a/Adaptation/Eaf/Core/Smtp/EmailMessage.cs +++ b/Adaptation/Eaf/Core/Smtp/EmailMessage.cs @@ -4,6 +4,10 @@ namespace Adaptation.Eaf.Core.Smtp; public class EmailMessage { + +#pragma warning disable CA2254 +#pragma warning disable IDE0060 + public EmailMessage() { } public EmailMessage(string subject, string body, MailPriority priority = MailPriority.Normal) { } diff --git a/Adaptation/Eaf/EquipmentCore/DataCollection/Reporting/ParameterValue.cs b/Adaptation/Eaf/EquipmentCore/DataCollection/Reporting/ParameterValue.cs index 2c7cd04..468230d 100644 --- a/Adaptation/Eaf/EquipmentCore/DataCollection/Reporting/ParameterValue.cs +++ b/Adaptation/Eaf/EquipmentCore/DataCollection/Reporting/ParameterValue.cs @@ -6,6 +6,11 @@ namespace Adaptation.Eaf.EquipmentCore.DataCollection.Reporting; public class ParameterValue { + +#pragma warning disable CA1822 +#pragma warning disable CA2254 +#pragma warning disable IDE0060 + public ParameterValue(EquipmentParameter definition, object value) { } public ParameterValue(EquipmentParameter definition, object value, DateTime timestamp) { } @@ -16,4 +21,5 @@ public class ParameterValue public virtual ParameterValue Clone(EquipmentParameter newDefinition) => throw new NotImplementedException(); public override string ToString() => base.ToString(); + } \ No newline at end of file diff --git a/Adaptation/Eaf/EquipmentCore/SelfDescription/ElementDescription/EquipmentParameter.cs b/Adaptation/Eaf/EquipmentCore/SelfDescription/ElementDescription/EquipmentParameter.cs index 30c2956..f9c126d 100644 --- a/Adaptation/Eaf/EquipmentCore/SelfDescription/ElementDescription/EquipmentParameter.cs +++ b/Adaptation/Eaf/EquipmentCore/SelfDescription/ElementDescription/EquipmentParameter.cs @@ -4,6 +4,10 @@ namespace Adaptation.Eaf.EquipmentCore.SelfDescription.ElementDescription; public class EquipmentParameter { + +#pragma warning disable CA2254 +#pragma warning disable IDE0060 + public EquipmentParameter(EquipmentParameter source, ParameterTypeDefinition typeDefinition) { } public EquipmentParameter(string name, ParameterTypeDefinition typeDefinition, string description, bool isTransient = false, bool isReadOnly = true) { } public EquipmentParameter(string id, string name, ParameterTypeDefinition typeDefinition, string description, bool isTransient = false, bool isReadOnly = true) { } @@ -19,4 +23,5 @@ public class EquipmentParameter public override string ToString() => base.ToString(); public string ToStringWithDetails() => base.ToString(); + } \ No newline at end of file diff --git a/Adaptation/Eaf/EquipmentCore/SelfDescription/ParameterTypes/Field.cs b/Adaptation/Eaf/EquipmentCore/SelfDescription/ParameterTypes/Field.cs index 57c77e1..726b51a 100644 --- a/Adaptation/Eaf/EquipmentCore/SelfDescription/ParameterTypes/Field.cs +++ b/Adaptation/Eaf/EquipmentCore/SelfDescription/ParameterTypes/Field.cs @@ -2,10 +2,15 @@ public class Field { + +#pragma warning disable CA2254 +#pragma warning disable IDE0060 + public Field(string name, string description, bool canBeNull, ParameterTypeDefinition typeDefinition) { } public string Name { get; } public string Description { get; } public ParameterTypeDefinition TypeDefinition { get; } public bool CanBeNull { get; } + } \ No newline at end of file diff --git a/Adaptation/Eaf/EquipmentCore/SelfDescription/ParameterTypes/ParameterTypeDefinition.cs b/Adaptation/Eaf/EquipmentCore/SelfDescription/ParameterTypes/ParameterTypeDefinition.cs index 54af381..00fc42a 100644 --- a/Adaptation/Eaf/EquipmentCore/SelfDescription/ParameterTypes/ParameterTypeDefinition.cs +++ b/Adaptation/Eaf/EquipmentCore/SelfDescription/ParameterTypes/ParameterTypeDefinition.cs @@ -2,10 +2,15 @@ public abstract class ParameterTypeDefinition { + +#pragma warning disable CA2254 +#pragma warning disable IDE0060 + public ParameterTypeDefinition(string name, string description) { } public string Name { get; } public string Description { get; } public override string ToString() => base.ToString(); + } \ No newline at end of file diff --git a/Adaptation/Eaf/EquipmentCore/SelfDescription/ParameterTypes/StructuredType.cs b/Adaptation/Eaf/EquipmentCore/SelfDescription/ParameterTypes/StructuredType.cs index 743d38e..fe5fbce 100644 --- a/Adaptation/Eaf/EquipmentCore/SelfDescription/ParameterTypes/StructuredType.cs +++ b/Adaptation/Eaf/EquipmentCore/SelfDescription/ParameterTypes/StructuredType.cs @@ -5,7 +5,12 @@ namespace Adaptation.Eaf.EquipmentCore.SelfDescription.ParameterTypes; public class StructuredType : ParameterTypeDefinition { +#pragma warning disable CA1822 +#pragma warning disable CA2254 +#pragma warning disable IDE0060 + public StructuredType(string name, string description, IList fields) : base(name, description) { } public IList Fields { get; } + } \ No newline at end of file diff --git a/Adaptation/Eaf/Management/ConfigurationData/CellAutomation/ModelObjectParameterDefinition.cs b/Adaptation/Eaf/Management/ConfigurationData/CellAutomation/ModelObjectParameterDefinition.cs index 476c2ff..067bf67 100644 --- a/Adaptation/Eaf/Management/ConfigurationData/CellAutomation/ModelObjectParameterDefinition.cs +++ b/Adaptation/Eaf/Management/ConfigurationData/CellAutomation/ModelObjectParameterDefinition.cs @@ -5,6 +5,10 @@ namespace Adaptation.Eaf.Management.ConfigurationData.CellAutomation; [System.Runtime.Serialization.DataContractAttribute(IsReference = true)] public class ModelObjectParameterDefinition : IConfigurationObject { + +#pragma warning disable CA2254 +#pragma warning disable IDE0060 + public ModelObjectParameterDefinition() { } public ModelObjectParameterDefinition(string name, ModelObjectParameterType valueType, object defaultValue) { } public ModelObjectParameterDefinition(string name, Type enumType, object defaultValue) { } @@ -22,4 +26,5 @@ public class ModelObjectParameterDefinition : IConfigurationObject public virtual ModelObjectParameterDefinition Clone() => null; public virtual bool IsValidValue(string value) => false; + } \ No newline at end of file diff --git a/Adaptation/FileHandlers/MET08THFTIRQS408M/FileRead.cs b/Adaptation/FileHandlers/MET08THFTIRQS408M/FileRead.cs index 0dbfaa7..3c4495c 100644 --- a/Adaptation/FileHandlers/MET08THFTIRQS408M/FileRead.cs +++ b/Adaptation/FileHandlers/MET08THFTIRQS408M/FileRead.cs @@ -21,6 +21,8 @@ namespace Adaptation.FileHandlers.MET08THFTIRQS408M; public class FileRead : Shared.FileRead, IFileRead { +#pragma warning disable CA1847 + private readonly Timer _Timer; private int _LastDummyRunIndex; private readonly string _IqsFile; @@ -164,7 +166,7 @@ public class FileRead : Shared.FileRead, IFileRead void IFileRead.Callback(object state) => Callback(state); - protected List GetDescriptions(JsonElement[] jsonElements) + protected static List GetDescriptions(JsonElement[] jsonElements) { List results = new(); QS408M.Description description; diff --git a/Adaptation/FileHandlers/QS408M/Description.cs b/Adaptation/FileHandlers/QS408M/Description.cs index 8299295..95f6f1b 100644 --- a/Adaptation/FileHandlers/QS408M/Description.cs +++ b/Adaptation/FileHandlers/QS408M/Description.cs @@ -217,7 +217,7 @@ public class Description : IDescription, Shared.Properties.IDescription return results; } - private Description GetDisplayNames() + private static Description GetDisplayNames() { Description result = new(); return result; diff --git a/Adaptation/FileHandlers/QS408M/ProcessData.cs b/Adaptation/FileHandlers/QS408M/ProcessData.cs index dc65880..43e3df0 100644 --- a/Adaptation/FileHandlers/QS408M/ProcessData.cs +++ b/Adaptation/FileHandlers/QS408M/ProcessData.cs @@ -186,7 +186,7 @@ public partial class ProcessData : IProcessData return IsNullOrWhiteSpace((num > -1 ? _Data.Substring(_I, num - _I) : _Data.Substring(_I))); } - private bool IsNullOrWhiteSpace(string text) + private static bool IsNullOrWhiteSpace(string text) { bool flag; int num = 0; diff --git a/Adaptation/Ifx/Eaf/Common/Configuration/ConnectionSetting.cs b/Adaptation/Ifx/Eaf/Common/Configuration/ConnectionSetting.cs index 59d1883..8cf469f 100644 --- a/Adaptation/Ifx/Eaf/Common/Configuration/ConnectionSetting.cs +++ b/Adaptation/Ifx/Eaf/Common/Configuration/ConnectionSetting.cs @@ -3,10 +3,15 @@ [System.Runtime.Serialization.DataContractAttribute] public class ConnectionSetting { + +#pragma warning disable CA2254 +#pragma warning disable IDE0060 + public ConnectionSetting(string name, string value) { } [System.Runtime.Serialization.DataMemberAttribute] public string Name { get; set; } [System.Runtime.Serialization.DataMemberAttribute] public string Value { get; set; } + } \ No newline at end of file diff --git a/Adaptation/Ifx/Eaf/EquipmentConnector/File/Component/File.cs b/Adaptation/Ifx/Eaf/EquipmentConnector/File/Component/File.cs index c5d559e..1e5d6eb 100644 --- a/Adaptation/Ifx/Eaf/EquipmentConnector/File/Component/File.cs +++ b/Adaptation/Ifx/Eaf/EquipmentConnector/File/Component/File.cs @@ -5,6 +5,10 @@ namespace Adaptation.Ifx.Eaf.EquipmentConnector.File.Component; public class File { + +#pragma warning disable CA2254 +#pragma warning disable IDE0060 + public File(string filePath) => throw new NotImplementedException(); public File(string filePath, DateTime timeFileFound) => throw new NotImplementedException(); @@ -15,4 +19,5 @@ public class File public File UpdateContentParameters(Dictionary contentParameters) => throw new NotImplementedException(); public File UpdateParsingStatus(bool isErrorFile) => throw new NotImplementedException(); + } \ No newline at end of file diff --git a/Adaptation/Ifx/Eaf/EquipmentConnector/File/Component/FilePathGenerator.cs b/Adaptation/Ifx/Eaf/EquipmentConnector/File/Component/FilePathGenerator.cs index 32e7628..5ab689e 100644 --- a/Adaptation/Ifx/Eaf/EquipmentConnector/File/Component/FilePathGenerator.cs +++ b/Adaptation/Ifx/Eaf/EquipmentConnector/File/Component/FilePathGenerator.cs @@ -6,6 +6,11 @@ namespace Adaptation.Ifx.Eaf.EquipmentConnector.File.Component; public class FilePathGenerator { + +#pragma warning disable CA1822 +#pragma warning disable CA2254 +#pragma warning disable IDE0060 + public const char PLACEHOLDER_IDENTIFIER = '%'; public const char PLACEHOLDER_SEPARATOR = ':'; public const string PLACEHOLDER_NOT_AVAILABLE = "NA"; @@ -31,4 +36,5 @@ public class FilePathGenerator protected virtual string GetSubFolder(string folderPattern, string subFolderPath) => throw new NotImplementedException(); protected virtual string PrepareFolderPath(string targetFolderPath, string subFolderPath) => throw new NotImplementedException(); protected string ReplacePlaceholder(string inputPath) => throw new NotImplementedException(); + } \ No newline at end of file diff --git a/Adaptation/Ifx/Eaf/EquipmentConnector/File/SelfDescription/FileConnectorParameterTypeDefinitionProvider.cs b/Adaptation/Ifx/Eaf/EquipmentConnector/File/SelfDescription/FileConnectorParameterTypeDefinitionProvider.cs index 5994ad0..9d9aa53 100644 --- a/Adaptation/Ifx/Eaf/EquipmentConnector/File/SelfDescription/FileConnectorParameterTypeDefinitionProvider.cs +++ b/Adaptation/Ifx/Eaf/EquipmentConnector/File/SelfDescription/FileConnectorParameterTypeDefinitionProvider.cs @@ -6,8 +6,14 @@ namespace Adaptation.Ifx.Eaf.EquipmentConnector.File.SelfDescription; public class FileConnectorParameterTypeDefinitionProvider { + +#pragma warning disable CA1822 +#pragma warning disable CA2254 +#pragma warning disable IDE0060 + public FileConnectorParameterTypeDefinitionProvider() { } public IEnumerable GetAllParameterTypeDefinition() => null; public ParameterTypeDefinition GetParameterTypeDefinition(string name) => null; + } \ No newline at end of file diff --git a/Adaptation/Shared/Duplicator/Description.cs b/Adaptation/Shared/Duplicator/Description.cs index bae163f..abbb7a4 100644 --- a/Adaptation/Shared/Duplicator/Description.cs +++ b/Adaptation/Shared/Duplicator/Description.cs @@ -112,13 +112,13 @@ public class Description : IDescription, Properties.IDescription return results; } - private Description GetDisplayNames() + private static Description GetDisplayNames() { Description result = new(); return result; } - private Description GetDefault(IFileRead fileRead, Logistics logistics) + private static Description GetDefault(IFileRead fileRead, Logistics logistics) { Description result = new() { diff --git a/Adaptation/Shared/Metrology/WS.cs b/Adaptation/Shared/Metrology/WS.cs index b5ebf4e..c3b61ca 100644 --- a/Adaptation/Shared/Metrology/WS.cs +++ b/Adaptation/Shared/Metrology/WS.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Linq; using System.Net.Http; using System.Text; using System.Text.Json; @@ -9,6 +10,8 @@ namespace Adaptation.Shared.Metrology; public partial class WS { +#pragma warning disable CA1847 + public static Tuple SendData(string url, object payload, int timeoutSeconds = 120) { Results results = new(); @@ -16,7 +19,7 @@ public partial class WS try { string json = JsonSerializer.Serialize(payload, payload.GetType()); - if (string.IsNullOrEmpty(url) || !url.Contains(":") || !url.Contains(".")) + if (string.IsNullOrEmpty(url) || !url.Contains(':') || !url.Contains('.')) throw new Exception("Invalid URL"); using (HttpClient httpClient = new()) { diff --git a/Adaptation/_Tests/CreateSelfDescription/Staging/v2.36.3/BIORAD2.cs b/Adaptation/_Tests/CreateSelfDescription/Staging/v2.36.3/BIORAD2.cs index 31704ec..2e18613 100644 --- a/Adaptation/_Tests/CreateSelfDescription/Staging/v2.36.3/BIORAD2.cs +++ b/Adaptation/_Tests/CreateSelfDescription/Staging/v2.36.3/BIORAD2.cs @@ -12,6 +12,10 @@ namespace _Tests.CreateSelfDescription.Staging.v2_36_3; [TestClass] public class BIORAD2 : EAFLoggingUnitTesting { + +#pragma warning disable CA2254 +#pragma warning disable IDE0060 + internal static BIORAD2 EAFLoggingUnitTesting { get; private set; } public BIORAD2() : base(testContext: null, declaringType: null, skipEquipmentDictionary: false) diff --git a/Adaptation/_Tests/CreateSelfDescription/Staging/v2.36.3/BIORAD3.cs b/Adaptation/_Tests/CreateSelfDescription/Staging/v2.36.3/BIORAD3.cs index 7a40096..7152ade 100644 --- a/Adaptation/_Tests/CreateSelfDescription/Staging/v2.36.3/BIORAD3.cs +++ b/Adaptation/_Tests/CreateSelfDescription/Staging/v2.36.3/BIORAD3.cs @@ -12,6 +12,10 @@ namespace _Tests.CreateSelfDescription.Staging.v2_36_3; [TestClass] public class BIORAD3 : EAFLoggingUnitTesting { + +#pragma warning disable CA2254 +#pragma warning disable IDE0060 + internal static BIORAD3 EAFLoggingUnitTesting { get; private set; } public BIORAD3() : base(testContext: null, declaringType: null, skipEquipmentDictionary: false) diff --git a/Adaptation/_Tests/CreateSelfDescription/Staging/v2.36.3/MET08THFTIRQS408M.cs b/Adaptation/_Tests/CreateSelfDescription/Staging/v2.36.3/MET08THFTIRQS408M.cs index acb114f..67e7790 100644 --- a/Adaptation/_Tests/CreateSelfDescription/Staging/v2.36.3/MET08THFTIRQS408M.cs +++ b/Adaptation/_Tests/CreateSelfDescription/Staging/v2.36.3/MET08THFTIRQS408M.cs @@ -12,6 +12,10 @@ namespace _Tests.CreateSelfDescription.Staging.v2_36_3; [TestClass] public class MET08THFTIRQS408M : EAFLoggingUnitTesting { + +#pragma warning disable CA2254 +#pragma warning disable IDE0060 + internal static MET08THFTIRQS408M EAFLoggingUnitTesting { get; private set; } public MET08THFTIRQS408M() : base(testContext: null, declaringType: null, skipEquipmentDictionary: false) diff --git a/Adaptation/_Tests/CreateSelfDescription/Staging/v2.39.0/BIORAD2.cs b/Adaptation/_Tests/CreateSelfDescription/Staging/v2.39.0/BIORAD2.cs index 616e864..53430fe 100644 --- a/Adaptation/_Tests/CreateSelfDescription/Staging/v2.39.0/BIORAD2.cs +++ b/Adaptation/_Tests/CreateSelfDescription/Staging/v2.39.0/BIORAD2.cs @@ -12,6 +12,10 @@ namespace _Tests.CreateSelfDescription.Staging.v2_39_0; [TestClass] public class BIORAD2 : EAFLoggingUnitTesting { + +#pragma warning disable CA2254 +#pragma warning disable IDE0060 + internal static BIORAD2 EAFLoggingUnitTesting { get; private set; } public BIORAD2() : base(testContext: null, declaringType: null, skipEquipmentDictionary: false) diff --git a/Adaptation/_Tests/CreateSelfDescription/Staging/v2.39.0/BIORAD3.cs b/Adaptation/_Tests/CreateSelfDescription/Staging/v2.39.0/BIORAD3.cs index 9241681..73fba8f 100644 --- a/Adaptation/_Tests/CreateSelfDescription/Staging/v2.39.0/BIORAD3.cs +++ b/Adaptation/_Tests/CreateSelfDescription/Staging/v2.39.0/BIORAD3.cs @@ -12,6 +12,10 @@ namespace _Tests.CreateSelfDescription.Staging.v2_39_0; [TestClass] public class BIORAD3 : EAFLoggingUnitTesting { + +#pragma warning disable CA2254 +#pragma warning disable IDE0060 + internal static BIORAD3 EAFLoggingUnitTesting { get; private set; } public BIORAD3() : base(testContext: null, declaringType: null, skipEquipmentDictionary: false) diff --git a/Adaptation/_Tests/CreateSelfDescription/Staging/v2.39.0/MET08THFTIRQS408M.cs b/Adaptation/_Tests/CreateSelfDescription/Staging/v2.39.0/MET08THFTIRQS408M.cs index c485851..48b18ab 100644 --- a/Adaptation/_Tests/CreateSelfDescription/Staging/v2.39.0/MET08THFTIRQS408M.cs +++ b/Adaptation/_Tests/CreateSelfDescription/Staging/v2.39.0/MET08THFTIRQS408M.cs @@ -12,6 +12,10 @@ namespace _Tests.CreateSelfDescription.Staging.v2_39_0; [TestClass] public class MET08THFTIRQS408M : EAFLoggingUnitTesting { + +#pragma warning disable CA2254 +#pragma warning disable IDE0060 + internal static MET08THFTIRQS408M EAFLoggingUnitTesting { get; private set; } public MET08THFTIRQS408M() : base(testContext: null, declaringType: null, skipEquipmentDictionary: false) diff --git a/Adaptation/_Tests/Extract/Staging/v2.36.3/BIORAD2.cs b/Adaptation/_Tests/Extract/Staging/v2.36.3/BIORAD2.cs index a99706b..28bd79f 100644 --- a/Adaptation/_Tests/Extract/Staging/v2.36.3/BIORAD2.cs +++ b/Adaptation/_Tests/Extract/Staging/v2.36.3/BIORAD2.cs @@ -6,6 +6,9 @@ namespace _Tests.Extract.Staging.v2_36_3; public class BIORAD2 { +#pragma warning disable CA2254 +#pragma warning disable IDE0060 + private static CreateSelfDescription.Staging.v2_36_3.BIORAD2 _BIORAD2; [ClassInitialize] diff --git a/Adaptation/_Tests/Extract/Staging/v2.36.3/BIORAD3.cs b/Adaptation/_Tests/Extract/Staging/v2.36.3/BIORAD3.cs index 8225cf5..03a0c35 100644 --- a/Adaptation/_Tests/Extract/Staging/v2.36.3/BIORAD3.cs +++ b/Adaptation/_Tests/Extract/Staging/v2.36.3/BIORAD3.cs @@ -14,6 +14,9 @@ namespace _Tests.Extract.Staging.v2_36_3; public class BIORAD3 { +#pragma warning disable CA2254 +#pragma warning disable IDE0060 + private static CreateSelfDescription.Staging.v2_36_3.BIORAD3 _BIORAD3; [ClassInitialize] diff --git a/Adaptation/_Tests/Extract/Staging/v2.36.3/MET08THFTIRQS408M.cs b/Adaptation/_Tests/Extract/Staging/v2.36.3/MET08THFTIRQS408M.cs index 83af04e..6450821 100644 --- a/Adaptation/_Tests/Extract/Staging/v2.36.3/MET08THFTIRQS408M.cs +++ b/Adaptation/_Tests/Extract/Staging/v2.36.3/MET08THFTIRQS408M.cs @@ -6,6 +6,9 @@ namespace _Tests.Extract.Staging.v2_36_3; public class MET08THFTIRQS408M { +#pragma warning disable CA2254 +#pragma warning disable IDE0060 + private static CreateSelfDescription.Staging.v2_36_3.MET08THFTIRQS408M _MET08THFTIRQS408M; [ClassInitialize] diff --git a/Adaptation/_Tests/Extract/Staging/v2.39.0/BIORAD2.cs b/Adaptation/_Tests/Extract/Staging/v2.39.0/BIORAD2.cs index 55de76b..fb69e5b 100644 --- a/Adaptation/_Tests/Extract/Staging/v2.39.0/BIORAD2.cs +++ b/Adaptation/_Tests/Extract/Staging/v2.39.0/BIORAD2.cs @@ -6,6 +6,9 @@ namespace _Tests.Extract.Staging.v2_39_0; public class BIORAD2 { +#pragma warning disable CA2254 +#pragma warning disable IDE0060 + private static CreateSelfDescription.Staging.v2_39_0.BIORAD2 _BIORAD2; [ClassInitialize] diff --git a/Adaptation/_Tests/Extract/Staging/v2.39.0/BIORAD3.cs b/Adaptation/_Tests/Extract/Staging/v2.39.0/BIORAD3.cs index ac9c5eb..03b9940 100644 --- a/Adaptation/_Tests/Extract/Staging/v2.39.0/BIORAD3.cs +++ b/Adaptation/_Tests/Extract/Staging/v2.39.0/BIORAD3.cs @@ -14,6 +14,9 @@ namespace _Tests.Extract.Staging.v2_39_0; public class BIORAD3 { +#pragma warning disable CA2254 +#pragma warning disable IDE0060 + private static CreateSelfDescription.Staging.v2_39_0.BIORAD3 _BIORAD3; [ClassInitialize] diff --git a/Adaptation/_Tests/Extract/Staging/v2.39.0/MET08THFTIRQS408M.cs b/Adaptation/_Tests/Extract/Staging/v2.39.0/MET08THFTIRQS408M.cs index 5abc385..d43e31a 100644 --- a/Adaptation/_Tests/Extract/Staging/v2.39.0/MET08THFTIRQS408M.cs +++ b/Adaptation/_Tests/Extract/Staging/v2.39.0/MET08THFTIRQS408M.cs @@ -6,6 +6,9 @@ namespace _Tests.Extract.Staging.v2_39_0; public class MET08THFTIRQS408M { +#pragma warning disable CA2254 +#pragma warning disable IDE0060 + private static CreateSelfDescription.Staging.v2_39_0.MET08THFTIRQS408M _MET08THFTIRQS408M; [ClassInitialize] diff --git a/Adaptation/_Tests/Shared/EAFLoggingUnitTesting.cs b/Adaptation/_Tests/Shared/EAFLoggingUnitTesting.cs index 55f2723..4504bae 100644 --- a/Adaptation/_Tests/Shared/EAFLoggingUnitTesting.cs +++ b/Adaptation/_Tests/Shared/EAFLoggingUnitTesting.cs @@ -19,6 +19,10 @@ public class EAFLoggingUnitTesting : LoggingUnitTesting, IDisposable _AdaptationTesting = new AdaptationTesting(testContext, skipEquipmentDictionary); } - public new void Dispose() => base.Dispose(); + public new void Dispose() + { + base.Dispose(); + GC.SuppressFinalize(this); + } } \ No newline at end of file diff --git a/Adaptation/_Tests/Shared/LoggingUnitTesting.cs b/Adaptation/_Tests/Shared/LoggingUnitTesting.cs index 4fd30be..1f44068 100644 --- a/Adaptation/_Tests/Shared/LoggingUnitTesting.cs +++ b/Adaptation/_Tests/Shared/LoggingUnitTesting.cs @@ -102,6 +102,10 @@ public class LoggingUnitTesting : UnitTesting, IDisposable return result; } - public void Dispose() => _LoggerFactory.Dispose(); + public void Dispose() + { + _LoggerFactory.Dispose(); + GC.SuppressFinalize(this); + } } \ No newline at end of file diff --git a/Adaptation/_Tests/Shared/PasteSpecialXml/EAF XML API/CellInstance.cs b/Adaptation/_Tests/Shared/PasteSpecialXml/EAF XML API/CellInstance.cs index d657021..304f0b2 100644 --- a/Adaptation/_Tests/Shared/PasteSpecialXml/EAF XML API/CellInstance.cs +++ b/Adaptation/_Tests/Shared/PasteSpecialXml/EAF XML API/CellInstance.cs @@ -9,6 +9,8 @@ public partial class CellInstanceVersion { +#pragma warning disable IDE1006 // Naming Styles + private string createdByField; private System.DateTime creationDateField; diff --git a/Adaptation/_Tests/Shared/PasteSpecialXml/EAF XML API/EquipmentDictionary.cs b/Adaptation/_Tests/Shared/PasteSpecialXml/EAF XML API/EquipmentDictionary.cs index 2ebf4d9..e54c13c 100644 --- a/Adaptation/_Tests/Shared/PasteSpecialXml/EAF XML API/EquipmentDictionary.cs +++ b/Adaptation/_Tests/Shared/PasteSpecialXml/EAF XML API/EquipmentDictionary.cs @@ -11,6 +11,8 @@ public partial class EquipmentDictionaryVersion { +#pragma warning disable IDE1006 // Naming Styles + private EquipmentDictionaryVersionAlarms alarmsField; private string createdByField; diff --git a/Adaptation/_Tests/Shared/PasteSpecialXml/EAF XML API/EquipmentType.cs b/Adaptation/_Tests/Shared/PasteSpecialXml/EAF XML API/EquipmentType.cs index 64cc091..c5efa45 100644 --- a/Adaptation/_Tests/Shared/PasteSpecialXml/EAF XML API/EquipmentType.cs +++ b/Adaptation/_Tests/Shared/PasteSpecialXml/EAF XML API/EquipmentType.cs @@ -9,6 +9,8 @@ public partial class EquipmentTypeVersion { +#pragma warning disable IDE1006 // Naming Styles + private string createdByField; private System.DateTime creationDateField; diff --git a/Adaptation/_Tests/Shared/UnitTesting.cs b/Adaptation/_Tests/Shared/UnitTesting.cs index 6276954..161de0c 100644 --- a/Adaptation/_Tests/Shared/UnitTesting.cs +++ b/Adaptation/_Tests/Shared/UnitTesting.cs @@ -80,7 +80,7 @@ public class UnitTesting AppendLine(" \"name\": \".NET Core Attach\","). AppendLine(" \"type\": \"coreclr\","). AppendLine(" \"request\": \"attach\","). - AppendLine($" \"processId\": {Process.GetCurrentProcess().Id}"). + AppendLine($" \"processId\": {Environment.ProcessId}"). AppendLine(" }"). AppendLine(" ]"). AppendLine("}"); diff --git a/Adaptation/package.json b/Adaptation/package.json index 85e4cd9..60c6dd1 100644 --- a/Adaptation/package.json +++ b/Adaptation/package.json @@ -5,14 +5,14 @@ "dotnet-format": "dotnet format --report .vscode --verbosity detailed --severity warn", "pull": "git pull", "garbage-collect": "git gc", - "AA-CreateSelfDescription.Staging.v2_39_0-BIORAD3_EQPT-Staging__v2_39_0__BIORAD3_EQPT__DownloadRsMFile": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~_Tests.CreateSelfDescription.Staging.v2_39_0 & ClassName~BIORAD3_EQPT & Staging__v2_39_0__BIORAD3_EQPT__DownloadRsMFile\" --% -- TestRunParameters.Parameter(name=\\\"Debug\\\", value=\\\"Debugger.IsAttached\\\")", + "AA-CreateSelfDescription.Staging.v2_39_0-BIORAD3_EQPT-Staging__v2_39_0__BIORAD3__QS408M": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~_Tests.CreateSelfDescription.Staging.v2_39_0 & ClassName~BIORAD3_EQPT & Staging__v2_39_0__BIORAD3__QS408M\" --% -- TestRunParameters.Parameter(name=\\\"Debug\\\", value=\\\"Debugger.IsAttached\\\")", "AT-CreateSelfDescription.Staging.v2_39_0-MET08THFTIRQS408M": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~_Tests.CreateSelfDescription.Staging.v2_39_0 & ClassName~MET08THFTIRQS408M\" --% -- TestRunParameters.Parameter(name=\\\"Debug\\\", value=\\\"Debugger.IsAttached\\\")", "AV-CreateSelfDescription.Staging.v2_39_0-BIORAD2_EQPT": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~_Tests.CreateSelfDescription.Staging.v2_39_0 & ClassName~BIORAD2_EQPT\" --% -- TestRunParameters.Parameter(name=\\\"Debug\\\", value=\\\"Debugger.IsAttached\\\")", "AW-CreateSelfDescription.Staging.v2_39_0-BIORAD2": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~_Tests.CreateSelfDescription.Staging.v2_39_0 & ClassName~BIORAD2\" --% -- TestRunParameters.Parameter(name=\\\"Debug\\\", value=\\\"Debugger.IsAttached\\\")", "AX-CreateSelfDescription.Staging.v2_39_0-BIORAD3_EQPT": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~_Tests.CreateSelfDescription.Staging.v2_39_0 & ClassName~BIORAD3_EQPT\" --% -- TestRunParameters.Parameter(name=\\\"Debug\\\", value=\\\"Debugger.IsAttached\\\")", "AY-CreateSelfDescription.Staging.v2_39_0-BIORAD3": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~_Tests.CreateSelfDescription.Staging.v2_39_0 & ClassName~BIORAD3\" --% -- TestRunParameters.Parameter(name=\\\"Debug\\\", value=\\\"Debugger.IsAttached\\\")", "AZ-CreateSelfDescription.Staging.v2_39_0": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~_Tests.CreateSelfDescription.Staging.v2_39_0\" --% -- TestRunParameters.Parameter(name=\\\"Debug\\\", value=\\\"Debugger.IsAttached\\\")", - "BA-Extract.Staging.v2_39_0-BIORAD3-Staging__v2_39_0__BIORAD3__RsM643047560320000000__Normal": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~_Tests.Extract.Staging.v2_39_0 & ClassName~BIORAD3 & Staging__v2_39_0__BIORAD3__RsM643047560320000000__Normal\" --% -- TestRunParameters.Parameter(name=\\\"Debug\\\", value=\\\"Debugger.IsAttached\\\")", + "BA-Extract.Staging.v2_39_0-BIORAD3-Staging__v2_39_0__BIORAD3__QS408M637406016892454000__ReactorAndRDS": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~_Tests.Extract.Staging.v2_39_0 & ClassName~BIORAD3 & Staging__v2_39_0__BIORAD3__QS408M637406016892454000__ReactorAndRDS\" --% -- TestRunParameters.Parameter(name=\\\"Debug\\\", value=\\\"Debugger.IsAttached\\\")", "BT-Extract.Staging.v2_39_0-MET08THFTIRQS408M": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~_Tests.Extract.Staging.v2_39_0 & ClassName~MET08THFTIRQS408M\" --% -- TestRunParameters.Parameter(name=\\\"Debug\\\", value=\\\"Debugger.IsAttached\\\")", "BV-Extract.Staging.v2_39_0-BIORAD2_EQPT": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~_Tests.Extract.Staging.v2_39_0 & ClassName~BIORAD2_EQPT\" --% -- TestRunParameters.Parameter(name=\\\"Debug\\\", value=\\\"Debugger.IsAttached\\\")", "BW-Extract.Staging.v2_39_0-BIORAD2": "dotnet test --runtime win-x64 --no-build --filter \"FullyQualifiedName~_Tests.Extract.Staging.v2_39_0 & ClassName~BIORAD2\" --% -- TestRunParameters.Parameter(name=\\\"Debug\\\", value=\\\"Debugger.IsAttached\\\")", diff --git a/FileHandlers/FileRead.cs b/FileHandlers/FileRead.cs index 7e80718..265ebb4 100644 --- a/FileHandlers/FileRead.cs +++ b/FileHandlers/FileRead.cs @@ -24,332 +24,326 @@ using System.Text.Json; using System.Text.Json.Serialization; using System.Threading; -namespace MET08THFTIRQS408M.FileHandlers +namespace MET08THFTIRQS408M.FileHandlers; + +public partial class FileRead : FileReaderHandler, ISMTP { - public partial class FileRead : FileReaderHandler, ISMTP + private readonly ILog _Log; + private IFileRead _FileRead; + private EquipmentEvent _EquipmentEvent; + private readonly bool _UseCyclicalForDescription; + private FilePathGenerator _FilePathGeneratorForError; + private FilePathGenerator _FilePathGeneratorForTarget; + private readonly List _EquipmentParameters; + private static readonly Dictionary> _DummyRuns; + + static FileRead() => _DummyRuns = new Dictionary>(); + + public FileRead() { + if (FileParameter is null) + FileParameter = new Dictionary(); + _FileRead = null; + _UseCyclicalForDescription = false; + _Log = LogManager.GetLogger(typeof(FileRead)); + _EquipmentParameters = new List(); + } - private readonly ILog _Log; - private IFileRead _FileRead; - private EquipmentEvent _EquipmentEvent; - private readonly bool _UseCyclicalForDescription; - private FilePathGenerator _FilePathGeneratorForError; - private FilePathGenerator _FilePathGeneratorForTarget; - private readonly List _EquipmentParameters; - private static readonly Dictionary> _DummyRuns; - - static FileRead() + public override void CreateSelfDescription() + { + MethodBase methodBase = new StackFrame().GetMethod(); + _Log.Debug(string.Concat(methodBase.Name, " - Entry")); + try { - _DummyRuns = new Dictionary>(); - } - - public FileRead() - { - if (FileParameter is null) - FileParameter = new Dictionary(); - _FileRead = null; - _UseCyclicalForDescription = false; - _Log = LogManager.GetLogger(typeof(FileRead)); - _EquipmentParameters = new List(); - } - - public override void CreateSelfDescription() - { - MethodBase methodBase = new StackFrame().GetMethod(); - _Log.Debug(string.Concat(methodBase.Name, " - Entry")); - try - { - if (Equipment is null) - throw new Exception(); - CreateSelfDescription(methodBase); - _Log.Debug(string.Concat(methodBase.Name, " - Try - Exit")); - } - catch (Exception ex) - { - _Log.Error(string.Concat(methodBase.Name, " - Catch - Entry {", ex.Message, "}", Environment.NewLine, Environment.NewLine, ex.StackTrace)); - long breakAfter = DateTime.Now.AddSeconds(30).Ticks; - for (short i = 0; i < short.MaxValue; i++) - { - if (DateTime.Now.Ticks > breakAfter) - break; - Thread.Sleep(500); - } - throw; - } - } - - public override bool Extract(string reportFullPath, string eventName) - { - MethodBase methodBase = new StackFrame().GetMethod(); - _Log.Debug(string.Concat(methodBase.Name, " - Entry - {", reportFullPath, "}")); - Tuple> extractResults = null; - try - { - extractResults = _FileRead.GetExtractResult(reportFullPath, eventName); - TriggerEvents(extractResults); - _FileRead.Move(extractResults); - FilePathGeneratorInfoMove(extractResults); - _FileRead.WaitForThread(); - _Log.Debug(string.Concat(methodBase.Name, " - Try - Exit")); - return true; - } - catch (Exception ex) - { - _Log.Error(string.Concat(methodBase.Name, " - Catch - Entry {", ex.Message, "}", Environment.NewLine, Environment.NewLine, ex.StackTrace)); - _FileRead.Move(extractResults, exception: ex); - FilePathGeneratorInfoMove(extractResults, exception: ex); - return false; - } - } - - private void Send(EmailMessage emailMessage) - { - ISmtp smtp = Backbone.Instance.GetBackboneComponentsOfType().SingleOrDefault(); - if (!(smtp is null)) - smtp.Send(emailMessage); - } - - void ISMTP.SendLowPriorityEmailMessage(string subject, string body) - { - EmailMessage emailMessage = new(subject, body, MailPriority.Low); - Send(emailMessage); - } - - void ISMTP.SendHighPriorityEmailMessage(string subject, string body) - { - EmailMessage emailMessage = new(subject, body, MailPriority.High); - Send(emailMessage); - } - - void ISMTP.SendNormalPriorityEmailMessage(string subject, string body) - { - EmailMessage emailMessage = new(subject, body, MailPriority.Normal); - Send(emailMessage); - } - - private void AddParameterRangeAndEvent() - { - string description; - bool allowNull = false; - EquipmentParameter equipmentParameter; - JsonProperty[] jsonProperties = _FileRead.GetDefault(); - Dictionary keyValuePairs = _FileRead.GetDisplayNamesJsonElement(); - Dictionary parameterTypeDefinitions = new(); - FileConnectorParameterTypeDefinitionProvider fileConnectorParameterTypeDefinitionProvider = new(); - foreach (ParameterTypeDefinition parameterTypeDefinition in fileConnectorParameterTypeDefinitionProvider.GetAllParameterTypeDefinition()) - { - switch (parameterTypeDefinition.Name) - { - case nameof(String): - parameterTypeDefinitions.Add(JsonValueKind.String, parameterTypeDefinition); - break; - case nameof(Double): - parameterTypeDefinitions.Add(JsonValueKind.Number, parameterTypeDefinition); - break; - case nameof(Boolean): - parameterTypeDefinitions.Add(JsonValueKind.True, parameterTypeDefinition); - parameterTypeDefinitions.Add(JsonValueKind.False, parameterTypeDefinition); - break; - default: - break; - } - } - foreach (JsonProperty jsonProperty in jsonProperties) - { - if (jsonProperty.Value.ValueKind == JsonValueKind.Object && !parameterTypeDefinitions.ContainsKey(JsonValueKind.Object)) - { - StructuredType structuredType = new(nameof(StructuredType), string.Empty, new List()); - parameterTypeDefinitions.Add(JsonValueKind.Object, structuredType); - Equipment.SelfDescriptionBuilder.AddParameterTypeDefinition(structuredType); - } - if (!parameterTypeDefinitions.ContainsKey(jsonProperty.Value.ValueKind)) - throw new Exception(string.Concat('{', jsonProperty.Value.ValueKind, "} is not mapped!")); - } - foreach (JsonProperty jsonProperty in jsonProperties) - { - if (jsonProperty.Value.ValueKind == JsonValueKind.Null && !allowNull) - throw new Exception(); - if (jsonProperty.Value.ValueKind != JsonValueKind.String || !keyValuePairs.ContainsKey(jsonProperty.Name)) - description = string.Empty; - else - description = keyValuePairs[jsonProperty.Name].Split('|')[0]; - equipmentParameter = new EquipmentParameter(jsonProperty.Name, parameterTypeDefinitions[jsonProperty.Value.ValueKind], description); - _EquipmentParameters.Add(equipmentParameter); - } - Equipment.SelfDescriptionBuilder.RootEquipmentElementBuilder.AddParameterRange(_EquipmentParameters); - _EquipmentEvent = new EquipmentEvent(_FileRead.EventName, _FileRead.GetEventDescription(), _EquipmentParameters); - Equipment.SelfDescriptionBuilder.RootEquipmentElementBuilder.AddEvent(_EquipmentEvent); - } - - private void CreateSelfDescription(MethodBase methodBase) - { - string cellInstanceName; - string equipmentTypeName = string.Empty; - string equipmentDictionaryName = string.Empty; - EquipmentElement equipmentElement = Equipment.SelfDescriptionBuilder.RootEquipmentElementBuilder.Item; - if (Backbone.Instance?.CellName is null) - cellInstanceName = string.Empty; - else - cellInstanceName = Backbone.Instance.CellName; - string cellInstanceConnectionName = equipmentElement.Name; - FileConnectorConfiguration fileConnectorConfiguration = Mapper.Map(Configuration); - string parameterizedModelObjectDefinitionType = methodBase.DeclaringType.FullName; - IList modelObjectParameters = Mapper.Map(ConfiguredParameters); - _FileRead = CellInstanceConnectionName.Get(this, FileParameter, cellInstanceName, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, _DummyRuns, _UseCyclicalForDescription, isEAFHosted: true); - if (_FileRead.IsEvent) - AddParameterRangeAndEvent(); - } - - private object GetFilePathGeneratorInfo(string reportFullPath, bool isErrorFile) - { - FilePathGeneratorInfo result; - FilePathGenerator filePathGeneratorOriginal; - if (Configuration is null) - result = null; - else - { - if (isErrorFile) - { - if (_FilePathGeneratorForError is null) - _FilePathGeneratorForError = new FilePathGenerator(Configuration, reportFullPath, isErrorFile: true); - filePathGeneratorOriginal = _FilePathGeneratorForError; - } - else - { - if (_FilePathGeneratorForTarget is null) - _FilePathGeneratorForTarget = new FilePathGenerator(Configuration, reportFullPath, isErrorFile: false); - filePathGeneratorOriginal = _FilePathGeneratorForTarget; - } - result = new FilePathGeneratorInfo(filePathGeneratorOriginal, reportFullPath, isErrorFile, FileParameter); - } - return result; - } - - private void FilePathGeneratorInfoMove(Tuple> extractResults, Exception exception = null) - { - bool isErrorFile = !(exception is null); - object filePathGeneratorInfo = GetFilePathGeneratorInfo(_FileRead.ReportFullPath, isErrorFile); - if (!(filePathGeneratorInfo is null) && filePathGeneratorInfo is FilePathGeneratorInfo filePathGenerator) - { - string[] exceptionLines = _FileRead.Move(extractResults, filePathGenerator.To, filePathGenerator.From, filePathGenerator.ResolvedFileLocation, exception); - if (isErrorFile) - { - try - { - StringBuilder stringBuilder = new(); - foreach (string item in exceptionLines) - stringBuilder.Append("<").Append(item).AppendLine(">"); - ISmtp smtp = Backbone.Instance.GetBackboneComponentsOfType().SingleOrDefault(); - EmailMessage emailMessage = new(_FileRead.ExceptionSubject, stringBuilder.ToString(), MailPriority.High); - smtp.Send(emailMessage); - } - catch (Exception) { } - } - } - } - - private List GetParameterValues(List headerNames, JsonElement[] jsonElements, int i) - { - List results = new(); - if (_UseCyclicalForDescription && i > 0) + if (Equipment is null) throw new Exception(); - object value; - List list; - JsonProperty[] jsonProperties = jsonElements[i].EnumerateObject().ToArray(); - if (jsonProperties.Length != _EquipmentParameters.Count) - throw new Exception(); - for (int p = 0; p < jsonProperties.Length; p++) - { - if (!_UseCyclicalForDescription || headerNames.Contains(jsonProperties[p].Name)) - value = jsonProperties[p].Value.ToString(); - else - { - list = new List(); - for (int z = 0; z < jsonElements.Length; z++) - list.Add(new object[] { z, jsonElements[z].GetProperty(jsonProperties[p].Name).ToString() }); - value = list; - } - results.Add(new ParameterValue(_EquipmentParameters[p], value, DateTime.Now)); - } - return results; + CreateSelfDescription(methodBase); + _Log.Debug(string.Concat(methodBase.Name, " - Try - Exit")); } - - private void TriggerEvents(Tuple> extractResults) + catch (Exception ex) { - List headerNames; - List parameters; - if (!_UseCyclicalForDescription) - headerNames = null; - else - headerNames = _FileRead.GetHeaderNames(); - for (int i = 0; i < extractResults.Item3.Length; i++) + _Log.Error(string.Concat(methodBase.Name, " - Catch - Entry {", ex.Message, "}", Environment.NewLine, Environment.NewLine, ex.StackTrace)); + long breakAfter = DateTime.Now.AddSeconds(30).Ticks; + for (short i = 0; i < short.MaxValue; i++) { + if (DateTime.Now.Ticks > breakAfter) + break; + Thread.Sleep(500); + } + throw; + } + } + + public override bool Extract(string reportFullPath, string eventName) + { + MethodBase methodBase = new StackFrame().GetMethod(); + _Log.Debug(string.Concat(methodBase.Name, " - Entry - {", reportFullPath, "}")); + Tuple> extractResults = null; + try + { + extractResults = _FileRead.GetExtractResult(reportFullPath, eventName); + TriggerEvents(extractResults); + _FileRead.Move(extractResults); + FilePathGeneratorInfoMove(extractResults); + _FileRead.WaitForThread(); + _Log.Debug(string.Concat(methodBase.Name, " - Try - Exit")); + return true; + } + catch (Exception ex) + { + _Log.Error(string.Concat(methodBase.Name, " - Catch - Entry {", ex.Message, "}", Environment.NewLine, Environment.NewLine, ex.StackTrace)); + _FileRead.Move(extractResults, exception: ex); + FilePathGeneratorInfoMove(extractResults, exception: ex); + return false; + } + } + + private void Send(EmailMessage emailMessage) + { + ISmtp smtp = Backbone.Instance.GetBackboneComponentsOfType().SingleOrDefault(); + if (smtp is not null) + smtp.Send(emailMessage); + } + + void ISMTP.SendLowPriorityEmailMessage(string subject, string body) + { + EmailMessage emailMessage = new(subject, body, MailPriority.Low); + Send(emailMessage); + } + + void ISMTP.SendHighPriorityEmailMessage(string subject, string body) + { + EmailMessage emailMessage = new(subject, body, MailPriority.High); + Send(emailMessage); + } + + void ISMTP.SendNormalPriorityEmailMessage(string subject, string body) + { + EmailMessage emailMessage = new(subject, body, MailPriority.Normal); + Send(emailMessage); + } + + private void AddParameterRangeAndEvent() + { + string description; + bool allowNull = false; + EquipmentParameter equipmentParameter; + JsonProperty[] jsonProperties = _FileRead.GetDefault(); + Dictionary keyValuePairs = _FileRead.GetDisplayNamesJsonElement(); + Dictionary parameterTypeDefinitions = new(); + FileConnectorParameterTypeDefinitionProvider fileConnectorParameterTypeDefinitionProvider = new(); + foreach (ParameterTypeDefinition parameterTypeDefinition in fileConnectorParameterTypeDefinitionProvider.GetAllParameterTypeDefinition()) + { + switch (parameterTypeDefinition.Name) + { + case nameof(String): + parameterTypeDefinitions.Add(JsonValueKind.String, parameterTypeDefinition); + break; + case nameof(Double): + parameterTypeDefinitions.Add(JsonValueKind.Number, parameterTypeDefinition); + break; + case nameof(Boolean): + parameterTypeDefinitions.Add(JsonValueKind.True, parameterTypeDefinition); + parameterTypeDefinitions.Add(JsonValueKind.False, parameterTypeDefinition); + break; + default: + break; + } + } + foreach (JsonProperty jsonProperty in jsonProperties) + { + if (jsonProperty.Value.ValueKind == JsonValueKind.Object && !parameterTypeDefinitions.ContainsKey(JsonValueKind.Object)) + { + StructuredType structuredType = new(nameof(StructuredType), string.Empty, new List()); + parameterTypeDefinitions.Add(JsonValueKind.Object, structuredType); + Equipment.SelfDescriptionBuilder.AddParameterTypeDefinition(structuredType); + } + if (!parameterTypeDefinitions.ContainsKey(jsonProperty.Value.ValueKind)) + throw new Exception(string.Concat('{', jsonProperty.Value.ValueKind, "} is not mapped!")); + } + foreach (JsonProperty jsonProperty in jsonProperties) + { + if (jsonProperty.Value.ValueKind == JsonValueKind.Null && !allowNull) + throw new Exception(); + if (jsonProperty.Value.ValueKind != JsonValueKind.String || !keyValuePairs.ContainsKey(jsonProperty.Name)) + description = string.Empty; + else + description = keyValuePairs[jsonProperty.Name].Split('|')[0]; + equipmentParameter = new EquipmentParameter(jsonProperty.Name, parameterTypeDefinitions[jsonProperty.Value.ValueKind], description); + _EquipmentParameters.Add(equipmentParameter); + } + _ = Equipment.SelfDescriptionBuilder.RootEquipmentElementBuilder.AddParameterRange(_EquipmentParameters); + _EquipmentEvent = new EquipmentEvent(_FileRead.EventName, _FileRead.GetEventDescription(), _EquipmentParameters); + _ = Equipment.SelfDescriptionBuilder.RootEquipmentElementBuilder.AddEvent(_EquipmentEvent); + } + + private void CreateSelfDescription(MethodBase methodBase) + { + string cellInstanceName; + string equipmentTypeName = string.Empty; + string equipmentDictionaryName = string.Empty; + EquipmentElement equipmentElement = Equipment.SelfDescriptionBuilder.RootEquipmentElementBuilder.Item; + if (Backbone.Instance?.CellName is null) + cellInstanceName = string.Empty; + else + cellInstanceName = Backbone.Instance.CellName; + string cellInstanceConnectionName = equipmentElement.Name; + FileConnectorConfiguration fileConnectorConfiguration = Mapper.Map(Configuration); + string parameterizedModelObjectDefinitionType = methodBase.DeclaringType.FullName; + IList modelObjectParameters = Mapper.Map(ConfiguredParameters); + _FileRead = CellInstanceConnectionName.Get(this, FileParameter, cellInstanceName, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, _DummyRuns, _UseCyclicalForDescription, isEAFHosted: true); + if (_FileRead.IsEvent) + AddParameterRangeAndEvent(); + } + + private object GetFilePathGeneratorInfo(string reportFullPath, bool isErrorFile) + { + FilePathGeneratorInfo result; + FilePathGenerator filePathGeneratorOriginal; + if (Configuration is null) + result = null; + else + { + if (isErrorFile) + { + if (_FilePathGeneratorForError is null) + _FilePathGeneratorForError = new FilePathGenerator(Configuration, reportFullPath, isErrorFile: true); + filePathGeneratorOriginal = _FilePathGeneratorForError; + } + else + { + if (_FilePathGeneratorForTarget is null) + _FilePathGeneratorForTarget = new FilePathGenerator(Configuration, reportFullPath, isErrorFile: false); + filePathGeneratorOriginal = _FilePathGeneratorForTarget; + } + result = new FilePathGeneratorInfo(filePathGeneratorOriginal, reportFullPath, isErrorFile, FileParameter); + } + return result; + } + + private void FilePathGeneratorInfoMove(Tuple> extractResults, Exception exception = null) + { + bool isErrorFile = exception is not null; + object filePathGeneratorInfo = GetFilePathGeneratorInfo(_FileRead.ReportFullPath, isErrorFile); + if (filePathGeneratorInfo is not null and FilePathGeneratorInfo filePathGenerator) + { + string[] exceptionLines = _FileRead.Move(extractResults, filePathGenerator.To, filePathGenerator.From, filePathGenerator.ResolvedFileLocation, exception); + if (isErrorFile) + { + try + { + StringBuilder stringBuilder = new(); + foreach (string item in exceptionLines) + _ = stringBuilder.Append("<").Append(item).AppendLine(">"); + ISmtp smtp = Backbone.Instance.GetBackboneComponentsOfType().SingleOrDefault(); + EmailMessage emailMessage = new(_FileRead.ExceptionSubject, stringBuilder.ToString(), MailPriority.High); + smtp.Send(emailMessage); + } + catch (Exception) { } + } + } + } + + private List GetParameterValues(List headerNames, JsonElement[] jsonElements, int i) + { + List results = new(); + if (_UseCyclicalForDescription && i > 0) + throw new Exception(); + object value; + List list; + JsonProperty[] jsonProperties = jsonElements[i].EnumerateObject().ToArray(); + if (jsonProperties.Length != _EquipmentParameters.Count) + throw new Exception(); + for (int p = 0; p < jsonProperties.Length; p++) + { + if (!_UseCyclicalForDescription || headerNames.Contains(jsonProperties[p].Name)) + value = jsonProperties[p].Value.ToString(); + else + { + list = new List(); + for (int z = 0; z < jsonElements.Length; z++) + list.Add(new object[] { z, jsonElements[z].GetProperty(jsonProperties[p].Name).ToString() }); + value = list; + } + results.Add(new ParameterValue(_EquipmentParameters[p], value, DateTime.Now)); + } + return results; + } + + private void TriggerEvents(Tuple> extractResults) + { + List headerNames; + List parameters; + if (!_UseCyclicalForDescription) + headerNames = null; + else + headerNames = _FileRead.GetHeaderNames(); + for (int i = 0; i < extractResults.Item3.Length; i++) + { + if (_EquipmentEvent is not null) + { + _Log.Debug(string.Concat("TriggerEvent - {", _FileRead.ReportFullPath, "} ", i, " of ", extractResults.Item3.Length)); + parameters = GetParameterValues(headerNames, extractResults.Item3, i); if (_EquipmentEvent is not null) - { - _Log.Debug(string.Concat("TriggerEvent - {", _FileRead.ReportFullPath, "} ", i, " of ", extractResults.Item3.Length)); - parameters = GetParameterValues(headerNames, extractResults.Item3, i); - if (!(_EquipmentEvent is null)) - Equipment.DataCollection.TriggerEvent(_EquipmentEvent, parameters); - if (_UseCyclicalForDescription) - break; - } + Equipment.DataCollection.TriggerEvent(_EquipmentEvent, parameters); + if (_UseCyclicalForDescription) + break; } } + } - public Tuple> ReExtract(string json) + public Tuple> ReExtract(string json) + { + Tuple> results; + string cellInstanceName; + if (!json.Contains(nameof(cellInstanceName))) + throw new Exception(); + string equipmentTypeName; + if (!json.Contains(nameof(equipmentTypeName))) + throw new Exception(); + string equipmentDictionaryName; + if (!json.Contains(nameof(equipmentDictionaryName))) + throw new Exception(); + string cellInstanceConnectionName; + if (!json.Contains(nameof(cellInstanceConnectionName))) + throw new Exception(); + if (!json.Contains(nameof(FileConnectorConfiguration))) + throw new Exception(); + if (!json.Contains(nameof(IList))) + throw new Exception(); + string parameterizedModelObjectDefinitionType; + if (!json.Contains(nameof(parameterizedModelObjectDefinitionType))) + throw new Exception(); + Dictionary> dummyRuns = new(); + Dictionary fileParameter = new(); + MethodBase methodBase = new StackFrame().GetMethod(); + JsonElement jsonElement = JsonSerializer.Deserialize(json); + cellInstanceName = jsonElement.GetProperty(nameof(cellInstanceName)).ToString(); + equipmentTypeName = jsonElement.GetProperty(nameof(equipmentTypeName)).ToString(); + equipmentDictionaryName = jsonElement.GetProperty(nameof(equipmentDictionaryName)).ToString(); + cellInstanceConnectionName = jsonElement.GetProperty(nameof(cellInstanceConnectionName)).ToString(); + JsonElement fileConnectorConfigurationJsonElement = jsonElement.GetProperty(nameof(FileConnectorConfiguration)); + parameterizedModelObjectDefinitionType = jsonElement.GetProperty(nameof(parameterizedModelObjectDefinitionType)).ToString(); + if (fileConnectorConfigurationJsonElement.ValueKind != JsonValueKind.Object) + throw new Exception(); + JsonSerializerOptions jsonSerializerOptions = new() { Converters = { new JsonStringEnumConverter(JsonNamingPolicy.CamelCase) } }; + FileConnectorConfiguration fileConnectorConfiguration = JsonSerializer.Deserialize(fileConnectorConfigurationJsonElement.ToString(), jsonSerializerOptions); + JsonElement modelObjectParameterDefinitionJsonElement = jsonElement.GetProperty(nameof(IList)); + if (modelObjectParameterDefinitionJsonElement.ValueKind != JsonValueKind.Array) + throw new Exception(); + IList modelObjectParameters = JsonSerializer.Deserialize>(modelObjectParameterDefinitionJsonElement.ToString(), jsonSerializerOptions); + _FileRead = CellInstanceConnectionName.Get(this, FileParameter, cellInstanceName, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, _DummyRuns, _UseCyclicalForDescription, isEAFHosted: false); + results = _FileRead.ReExtract(); + if (results?.Item2 is null) + throw new Exception(); + else { - Tuple> results; - string cellInstanceName; - if (!json.Contains(nameof(cellInstanceName))) - throw new Exception(); - string equipmentTypeName; - if (!json.Contains(nameof(equipmentTypeName))) - throw new Exception(); - string equipmentDictionaryName; - if (!json.Contains(nameof(equipmentDictionaryName))) - throw new Exception(); - string cellInstanceConnectionName; - if (!json.Contains(nameof(cellInstanceConnectionName))) - throw new Exception(); - if (!json.Contains(nameof(FileConnectorConfiguration))) - throw new Exception(); - if (!json.Contains(nameof(IList))) - throw new Exception(); - string parameterizedModelObjectDefinitionType; - if (!json.Contains(nameof(parameterizedModelObjectDefinitionType))) - throw new Exception(); - Dictionary> dummyRuns = new(); - Dictionary fileParameter = new(); - MethodBase methodBase = new StackFrame().GetMethod(); - JsonElement jsonElement = JsonSerializer.Deserialize(json); - cellInstanceName = jsonElement.GetProperty(nameof(cellInstanceName)).ToString(); - equipmentTypeName = jsonElement.GetProperty(nameof(equipmentTypeName)).ToString(); - equipmentDictionaryName = jsonElement.GetProperty(nameof(equipmentDictionaryName)).ToString(); - cellInstanceConnectionName = jsonElement.GetProperty(nameof(cellInstanceConnectionName)).ToString(); - JsonElement fileConnectorConfigurationJsonElement = jsonElement.GetProperty(nameof(FileConnectorConfiguration)); - parameterizedModelObjectDefinitionType = jsonElement.GetProperty(nameof(parameterizedModelObjectDefinitionType)).ToString(); - if (fileConnectorConfigurationJsonElement.ValueKind != JsonValueKind.Object) - throw new Exception(); - JsonSerializerOptions jsonSerializerOptions = new() { Converters = { new JsonStringEnumConverter(JsonNamingPolicy.CamelCase) } }; - FileConnectorConfiguration fileConnectorConfiguration = JsonSerializer.Deserialize(fileConnectorConfigurationJsonElement.ToString(), jsonSerializerOptions); - JsonElement modelObjectParameterDefinitionJsonElement = jsonElement.GetProperty(nameof(IList)); - if (modelObjectParameterDefinitionJsonElement.ValueKind != JsonValueKind.Array) - throw new Exception(); - IList modelObjectParameters = JsonSerializer.Deserialize>(modelObjectParameterDefinitionJsonElement.ToString(), jsonSerializerOptions); - _FileRead = CellInstanceConnectionName.Get(this, FileParameter, cellInstanceName, cellInstanceConnectionName, fileConnectorConfiguration, equipmentTypeName, parameterizedModelObjectDefinitionType, modelObjectParameters, equipmentDictionaryName, _DummyRuns, _UseCyclicalForDescription, isEAFHosted: false); - results = _FileRead.ReExtract(); - if (results?.Item2 is null) - throw new Exception(); - else - { - TriggerEvents(results); - _FileRead.Move(results); - FilePathGeneratorInfoMove(results); - } - return results; + TriggerEvents(results); + _FileRead.Move(results); + FilePathGeneratorInfoMove(results); } - + return results; } } diff --git a/Shared/FilePathGenerator.cs b/Shared/FilePathGenerator.cs index c8d1fcd..da97777 100644 --- a/Shared/FilePathGenerator.cs +++ b/Shared/FilePathGenerator.cs @@ -2,34 +2,19 @@ using System.Collections.Generic; using Ifx.Eaf.EquipmentConnector.File.Component; using Ifx.Eaf.EquipmentConnector.File.Configuration; -namespace Shared +namespace Shared; + +public class FilePathGenerator : Ifx.Eaf.EquipmentConnector.File.Component.FilePathGenerator { - public class FilePathGenerator : Ifx.Eaf.EquipmentConnector.File.Component.FilePathGenerator - { + public FileConnectorConfiguration FileConnectorConfiguration { get; private set; } - public FileConnectorConfiguration FileConnectorConfiguration { get; private set; } + public FilePathGenerator(FileConnectorConfiguration config, Dictionary customPattern = null) : base(config, customPattern) => FileConnectorConfiguration = config; - public FilePathGenerator(FileConnectorConfiguration config, Dictionary customPattern = null) : base(config, customPattern) - { - FileConnectorConfiguration = config; - } + public FilePathGenerator(FileConnectorConfiguration config, File file, bool isErrorFile = false, Dictionary customPattern = null) : base(config, file, isErrorFile, customPattern) => FileConnectorConfiguration = config; - public FilePathGenerator(FileConnectorConfiguration config, File file, bool isErrorFile = false, Dictionary customPattern = null) : base(config, file, isErrorFile, customPattern) - { - FileConnectorConfiguration = config; - } + public FilePathGenerator(FileConnectorConfiguration config, string sourceFilePath, bool isErrorFile = false, Dictionary customPattern = null) : base(config, sourceFilePath, isErrorFile, customPattern) => FileConnectorConfiguration = config; - public FilePathGenerator(FileConnectorConfiguration config, string sourceFilePath, bool isErrorFile = false, Dictionary customPattern = null) : base(config, sourceFilePath, isErrorFile, customPattern) - { - FileConnectorConfiguration = config; - } - - public string GetSubFolderPath() - { - return SubFolderPath; - } - - } + public string GetSubFolderPath() => SubFolderPath; } diff --git a/Shared/FilePathGeneratorInfo.cs b/Shared/FilePathGeneratorInfo.cs index 827a893..8d5e287 100644 --- a/Shared/FilePathGeneratorInfo.cs +++ b/Shared/FilePathGeneratorInfo.cs @@ -1,66 +1,63 @@ using System.IO; -namespace Shared +namespace Shared; + +public class FilePathGeneratorInfo { - public class FilePathGeneratorInfo + public string To { get; protected set; } + public string From { get; protected set; } + public bool IsErrorFile { get; protected set; } + public string SubFolderPath { get; protected set; } + public string FirstDirectory { get; protected set; } + public string ReportFullPath { get; protected set; } + public string ResolvedFileLocation { get; protected set; } + + public FilePathGeneratorInfo(object originalFilePathGenerator, string reportFullPath, bool isErrorFile, System.Collections.Generic.Dictionary fileParameter) { - - public string To { get; protected set; } - public string From { get; protected set; } - public bool IsErrorFile { get; protected set; } - public string SubFolderPath { get; protected set; } - public string FirstDirectory { get; protected set; } - public string ReportFullPath { get; protected set; } - public string ResolvedFileLocation { get; protected set; } - - public FilePathGeneratorInfo(object originalFilePathGenerator, string reportFullPath, bool isErrorFile, System.Collections.Generic.Dictionary fileParameter) + ReportFullPath = reportFullPath; + IsErrorFile = isErrorFile; + if (originalFilePathGenerator is null || originalFilePathGenerator is not FilePathGenerator original) { - ReportFullPath = reportFullPath; - IsErrorFile = isErrorFile; - if (originalFilePathGenerator is null || originalFilePathGenerator is not FilePathGenerator original) - { - FirstDirectory = string.Empty; - ResolvedFileLocation = string.Empty; - To = string.Empty; - From = string.Empty; - } - else - { - string directorySeparatorChar = Path.DirectorySeparatorChar.ToString(); - FilePathGenerator filePathGenerator = new(original.FileConnectorConfiguration, reportFullPath, isErrorFile); - SubFolderPath = filePathGenerator.GetSubFolderPath(); - if (string.IsNullOrEmpty(SubFolderPath)) - FirstDirectory = SubFolderPath; - else - FirstDirectory = SubFolderPath.Split(Path.DirectorySeparatorChar)[0]; - ResolvedFileLocation = filePathGenerator.GetTargetFolder(); - if (string.IsNullOrEmpty(ResolvedFileLocation) && string.IsNullOrEmpty(SubFolderPath)) - To = string.Empty; - else if (string.IsNullOrEmpty(SubFolderPath)) - To = ResolvedFileLocation; - else - To = string.Concat(ResolvedFileLocation.Replace(SubFolderPath, string.Empty), Path.DirectorySeparatorChar, FirstDirectory); -#if (true) - if (string.IsNullOrEmpty(original.FileConnectorConfiguration.DefaultPlaceHolderValue)) - original.FileConnectorConfiguration.DefaultPlaceHolderValue = "NA"; - if (!(fileParameter is null) && fileParameter.Count == 1 && To.Contains(original.FileConnectorConfiguration.DefaultPlaceHolderValue)) - { - foreach (System.Collections.Generic.KeyValuePair keyValuePair in fileParameter) - To = To.Replace(string.Concat(original.FileConnectorConfiguration.DefaultPlaceHolderValue), keyValuePair.Value); - } -#endif - if (original.FileConnectorConfiguration.SourceFileLocation.EndsWith(directorySeparatorChar)) - From = string.Concat(original.FileConnectorConfiguration.SourceFileLocation, FirstDirectory); - else - From = string.Concat(original.FileConnectorConfiguration.SourceFileLocation, Path.DirectorySeparatorChar, FirstDirectory); - if (From.EndsWith(directorySeparatorChar) && !To.EndsWith(directorySeparatorChar)) - To = string.Concat(To, Path.DirectorySeparatorChar); - else if (To.EndsWith(directorySeparatorChar) && !From.EndsWith(directorySeparatorChar)) - To = To.Remove(To.Length - 1, 1); - } + FirstDirectory = string.Empty; + ResolvedFileLocation = string.Empty; + To = string.Empty; + From = string.Empty; + } + else + { + string directorySeparatorChar = Path.DirectorySeparatorChar.ToString(); + FilePathGenerator filePathGenerator = new(original.FileConnectorConfiguration, reportFullPath, isErrorFile); + SubFolderPath = filePathGenerator.GetSubFolderPath(); + if (string.IsNullOrEmpty(SubFolderPath)) + FirstDirectory = SubFolderPath; + else + FirstDirectory = SubFolderPath.Split(Path.DirectorySeparatorChar)[0]; + ResolvedFileLocation = filePathGenerator.GetTargetFolder(); + if (string.IsNullOrEmpty(ResolvedFileLocation) && string.IsNullOrEmpty(SubFolderPath)) + To = string.Empty; + else if (string.IsNullOrEmpty(SubFolderPath)) + To = ResolvedFileLocation; + else + To = string.Concat(ResolvedFileLocation.Replace(SubFolderPath, string.Empty), Path.DirectorySeparatorChar, FirstDirectory); +#if (true) + if (string.IsNullOrEmpty(original.FileConnectorConfiguration.DefaultPlaceHolderValue)) + original.FileConnectorConfiguration.DefaultPlaceHolderValue = "NA"; + if (fileParameter is not null && fileParameter.Count == 1 && To.Contains(original.FileConnectorConfiguration.DefaultPlaceHolderValue)) + { + foreach (System.Collections.Generic.KeyValuePair keyValuePair in fileParameter) + To = To.Replace(string.Concat(original.FileConnectorConfiguration.DefaultPlaceHolderValue), keyValuePair.Value); + } +#endif + if (original.FileConnectorConfiguration.SourceFileLocation.EndsWith(directorySeparatorChar)) + From = string.Concat(original.FileConnectorConfiguration.SourceFileLocation, FirstDirectory); + else + From = string.Concat(original.FileConnectorConfiguration.SourceFileLocation, Path.DirectorySeparatorChar, FirstDirectory); + if (From.EndsWith(directorySeparatorChar) && !To.EndsWith(directorySeparatorChar)) + To = string.Concat(To, Path.DirectorySeparatorChar); + else if (To.EndsWith(directorySeparatorChar) && !From.EndsWith(directorySeparatorChar)) + To = To.Remove(To.Length - 1, 1); } - } } diff --git a/Shared/Mapper.cs b/Shared/Mapper.cs index 4408cc8..fe5c923 100644 --- a/Shared/Mapper.cs +++ b/Shared/Mapper.cs @@ -2,76 +2,73 @@ using System.Collections.Generic; using Eaf.Management.ConfigurationData.CellAutomation; using Ifx.Eaf.EquipmentConnector.File.Configuration; -namespace Shared +namespace Shared; + +public static class Mapper { - public static class Mapper + internal static Adaptation.Ifx.Eaf.EquipmentConnector.File.Configuration.FileConnectorConfiguration Map(FileConnectorConfiguration configuration) { - - internal static Adaptation.Ifx.Eaf.EquipmentConnector.File.Configuration.FileConnectorConfiguration Map(FileConnectorConfiguration configuration) + Adaptation.Ifx.Eaf.EquipmentConnector.File.Configuration.FileConnectorConfiguration result = new() { - Adaptation.Ifx.Eaf.EquipmentConnector.File.Configuration.FileConnectorConfiguration result = new() - { - AlternateTargetFolder = configuration.AlternateTargetFolder, - ConnectionRetryInterval = configuration.ConnectionRetryInterval, - ConnectionSettings = new List(), - CopySourceFolderStructure = configuration.CopySourceFolderStructure, - DefaultPlaceHolderValue = configuration.DefaultPlaceHolderValue, - //DeleteAbandonedEmptySourceSubFolders = configuration.DeleteAbandonedEmptySourceSubFolders, - DeleteEmptySourceSubFolders = configuration.DeleteEmptySourceSubFolders, - ErrorPostProcessingMode = (Adaptation.Ifx.Eaf.EquipmentConnector.File.Configuration.FileConnectorConfiguration.PostProcessingModeEnum)configuration.ErrorPostProcessingMode, - ErrorTargetFileLocation = configuration.ErrorTargetFileLocation, - ErrorTargetFileName = configuration.ErrorTargetFileName, - FileAgeFilterMode = (Adaptation.Ifx.Eaf.EquipmentConnector.File.Configuration.FileConnectorConfiguration.FileAgeFilterEnum)configuration.FileAgeFilterMode, - FileAgeThreshold = configuration.FileAgeThreshold, - //FileHandlers = configuration.FileHandlers, - FileHandleTimeout = (long)configuration.FileHandleTimeout, - FileHandleWaitTime = configuration.FileHandleWaitTime, - FileScanningIntervalInSeconds = configuration.FileScanningIntervalInSeconds, - FileScanningOption = (Adaptation.Ifx.Eaf.EquipmentConnector.File.Configuration.FileConnectorConfiguration.FileScanningOptionEnum)configuration.FileScanningOption, - FolderAgeCheckIndividualSubFolders = configuration.FolderAgeCheckIndividualSubFolders, - FolderAgeThreshold = configuration.FolderAgeThreshold, - //FolderOperationsSubFolderLevel = configuration.FolderOperationsSubFolderLevel, - IdleEventWaitTimeInSeconds = (long)configuration.IdleEventWaitTimeInSeconds, - IfFileExistAction = (Adaptation.Ifx.Eaf.EquipmentConnector.File.Configuration.FileConnectorConfiguration.IfFileExistEnum)configuration.IfFileExistAction, - IfPostProcessingFailsAction = (Adaptation.Ifx.Eaf.EquipmentConnector.File.Configuration.FileConnectorConfiguration.IfPostProcessingFailsEnum)configuration.IfPostProcessingFailsAction, - IncludeSubDirectories = configuration.IncludeSubDirectories, - PostProcessingRetries = configuration.PostProcessingRetries, - PreProcessingMode = (Adaptation.Ifx.Eaf.EquipmentConnector.File.Configuration.FileConnectorConfiguration.PreProcessingModeEnum)configuration.PreProcessingMode, - PostProcessingMode = (Adaptation.Ifx.Eaf.EquipmentConnector.File.Configuration.FileConnectorConfiguration.PostProcessingModeEnum)configuration.PostProcessingMode, - SourceDirectoryCloaking = configuration.SourceDirectoryCloaking, - SourceFileFilter = configuration.SourceFileFilter, - SourceFileFilters = configuration.SourceFileFilters, - SourceFileLocation = configuration.SourceFileLocation, - TargetFileLocation = configuration.TargetFileLocation, - TargetFileName = configuration.TargetFileName, - TriggerOnChanged = configuration.TriggerOnChanged, - TriggerOnCreated = configuration.TriggerOnCreated, - UseZip64Mode = configuration.UseZip64Mode, - ZipErrorTargetFileName = configuration.ZipErrorTargetFileName, - ZipFileAmount = configuration.ZipFileAmount, - ZipFileSubFolderLevel = configuration.ZipFileSubFolderLevel, - ZipFileTime = configuration.ZipFileTime, - ZipMode = (Adaptation.Ifx.Eaf.EquipmentConnector.File.Configuration.FileConnectorConfiguration.ZipModeEnum)configuration.ZipMode, - ZipTargetFileName = configuration.ZipTargetFileName, - }; - foreach (Ifx.Eaf.Common.Configuration.ConnectionSetting connectionSetting in configuration.ConnectionSettings) - result.ConnectionSettings.Add(new Adaptation.Ifx.Eaf.Common.Configuration.ConnectionSetting(connectionSetting.Name, connectionSetting.Value)); - return result; - } + AlternateTargetFolder = configuration.AlternateTargetFolder, + ConnectionRetryInterval = configuration.ConnectionRetryInterval, + ConnectionSettings = new List(), + CopySourceFolderStructure = configuration.CopySourceFolderStructure, + DefaultPlaceHolderValue = configuration.DefaultPlaceHolderValue, + //DeleteAbandonedEmptySourceSubFolders = configuration.DeleteAbandonedEmptySourceSubFolders, + DeleteEmptySourceSubFolders = configuration.DeleteEmptySourceSubFolders, + ErrorPostProcessingMode = (Adaptation.Ifx.Eaf.EquipmentConnector.File.Configuration.FileConnectorConfiguration.PostProcessingModeEnum)configuration.ErrorPostProcessingMode, + ErrorTargetFileLocation = configuration.ErrorTargetFileLocation, + ErrorTargetFileName = configuration.ErrorTargetFileName, + FileAgeFilterMode = (Adaptation.Ifx.Eaf.EquipmentConnector.File.Configuration.FileConnectorConfiguration.FileAgeFilterEnum)configuration.FileAgeFilterMode, + FileAgeThreshold = configuration.FileAgeThreshold, + //FileHandlers = configuration.FileHandlers, + FileHandleTimeout = (long)configuration.FileHandleTimeout, + FileHandleWaitTime = configuration.FileHandleWaitTime, + FileScanningIntervalInSeconds = configuration.FileScanningIntervalInSeconds, + FileScanningOption = (Adaptation.Ifx.Eaf.EquipmentConnector.File.Configuration.FileConnectorConfiguration.FileScanningOptionEnum)configuration.FileScanningOption, + FolderAgeCheckIndividualSubFolders = configuration.FolderAgeCheckIndividualSubFolders, + FolderAgeThreshold = configuration.FolderAgeThreshold, + //FolderOperationsSubFolderLevel = configuration.FolderOperationsSubFolderLevel, + IdleEventWaitTimeInSeconds = (long)configuration.IdleEventWaitTimeInSeconds, + IfFileExistAction = (Adaptation.Ifx.Eaf.EquipmentConnector.File.Configuration.FileConnectorConfiguration.IfFileExistEnum)configuration.IfFileExistAction, + IfPostProcessingFailsAction = (Adaptation.Ifx.Eaf.EquipmentConnector.File.Configuration.FileConnectorConfiguration.IfPostProcessingFailsEnum)configuration.IfPostProcessingFailsAction, + IncludeSubDirectories = configuration.IncludeSubDirectories, + PostProcessingRetries = configuration.PostProcessingRetries, + PreProcessingMode = (Adaptation.Ifx.Eaf.EquipmentConnector.File.Configuration.FileConnectorConfiguration.PreProcessingModeEnum)configuration.PreProcessingMode, + PostProcessingMode = (Adaptation.Ifx.Eaf.EquipmentConnector.File.Configuration.FileConnectorConfiguration.PostProcessingModeEnum)configuration.PostProcessingMode, + SourceDirectoryCloaking = configuration.SourceDirectoryCloaking, + SourceFileFilter = configuration.SourceFileFilter, + SourceFileFilters = configuration.SourceFileFilters, + SourceFileLocation = configuration.SourceFileLocation, + TargetFileLocation = configuration.TargetFileLocation, + TargetFileName = configuration.TargetFileName, + TriggerOnChanged = configuration.TriggerOnChanged, + TriggerOnCreated = configuration.TriggerOnCreated, + UseZip64Mode = configuration.UseZip64Mode, + ZipErrorTargetFileName = configuration.ZipErrorTargetFileName, + ZipFileAmount = configuration.ZipFileAmount, + ZipFileSubFolderLevel = configuration.ZipFileSubFolderLevel, + ZipFileTime = configuration.ZipFileTime, + ZipMode = (Adaptation.Ifx.Eaf.EquipmentConnector.File.Configuration.FileConnectorConfiguration.ZipModeEnum)configuration.ZipMode, + ZipTargetFileName = configuration.ZipTargetFileName, + }; + foreach (Ifx.Eaf.Common.Configuration.ConnectionSetting connectionSetting in configuration.ConnectionSettings) + result.ConnectionSettings.Add(new Adaptation.Ifx.Eaf.Common.Configuration.ConnectionSetting(connectionSetting.Name, connectionSetting.Value)); + return result; + } - internal static IList Map(IList configuredParameters) + internal static IList Map(IList configuredParameters) + { + List results = new(); + Adaptation.Eaf.Management.ConfigurationData.CellAutomation.ModelObjectParameterType modelObjectParameterType; + for (int i = 0; i < configuredParameters.Count; i++) { - List results = new(); - Adaptation.Eaf.Management.ConfigurationData.CellAutomation.ModelObjectParameterType modelObjectParameterType; - for (int i = 0; i < configuredParameters.Count; i++) - { - modelObjectParameterType = (Adaptation.Eaf.Management.ConfigurationData.CellAutomation.ModelObjectParameterType)configuredParameters[i].ValueType; - results.Add(new Adaptation.Eaf.Management.ConfigurationData.CellAutomation.ModelObjectParameterDefinition() { Id = i, Name = configuredParameters[i].Name, Value = configuredParameters[i].Value, ValueType = modelObjectParameterType, EnumType = modelObjectParameterType.ToString() }); - } - return results; + modelObjectParameterType = (Adaptation.Eaf.Management.ConfigurationData.CellAutomation.ModelObjectParameterType)configuredParameters[i].ValueType; + results.Add(new Adaptation.Eaf.Management.ConfigurationData.CellAutomation.ModelObjectParameterDefinition() { Id = i, Name = configuredParameters[i].Name, Value = configuredParameters[i].Value, ValueType = modelObjectParameterType, EnumType = modelObjectParameterType.ToString() }); } - + return results; } }