From fe08bd71f1dc91922b22b0ff60ca4d9dcc69b679 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Mon, 26 Aug 2024 08:29:27 +0200 Subject: [PATCH] COmpleto commit con modifica gestione true/True --- FraMan.Core/FraMan.Core.csproj | 36 ++++++------ FraMan.Core/HwInOut/AGB/DataManager.cs | 39 +++++++++++++ FraMan.Core/HwInOut/AGB/Opzioni.cs | 2 +- FraMan.Core/HwInOut/AGB/Parametri.cs | 2 +- FraMan.Core/HwInOut/AGB/ParametriOpzioni.cs | 9 ++- FraMan.DataLayer/FraMan.DataLayer.csproj | 34 +++++------ FraMan.Test/FraMan.Test.csproj | 13 +++++ FraMan.Test/Program.cs | 64 ++++++++++++++++++--- FraMan.sln | 12 ++++ 9 files changed, 164 insertions(+), 47 deletions(-) create mode 100644 FraMan.Core/HwInOut/AGB/DataManager.cs diff --git a/FraMan.Core/FraMan.Core.csproj b/FraMan.Core/FraMan.Core.csproj index 65d0989..e5fc3bd 100644 --- a/FraMan.Core/FraMan.Core.csproj +++ b/FraMan.Core/FraMan.Core.csproj @@ -1,10 +1,10 @@ - + Debug AnyCPU - fffad4cf-0dec-4e9b-b7fd-7316ac12a809 + {FFFAD4CF-0DEC-4E9B-B7FD-7316AC12A809} Library Properties FraMan.Core @@ -31,24 +31,24 @@ 4 - - - - - - - - - - - - - - + + + + + + + + - + + + + + + + - + \ No newline at end of file diff --git a/FraMan.Core/HwInOut/AGB/DataManager.cs b/FraMan.Core/HwInOut/AGB/DataManager.cs new file mode 100644 index 0000000..f1214be --- /dev/null +++ b/FraMan.Core/HwInOut/AGB/DataManager.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Serialization; + +namespace FraMan.Core.HwInOut.AGB +{ + public class DataManager + { + + public static bool ReadParamOpt(string filePath, ref ParametriOpzioni decoded) + { + bool done = false; + if (File.Exists(filePath)) + { + string rawXml = File.ReadAllText(filePath); + // se ho dati procedo + if (!string.IsNullOrEmpty(rawXml)) + { + // bonifica dati: es "True --> true + rawXml = rawXml.Replace(">True<", ">true<"); + rawXml = rawXml.Replace(">False<", ">false<"); + // deserializzo + XmlSerializer serializer = new XmlSerializer(typeof(ParametriOpzioni)); + using (StringReader reader = new StringReader(rawXml)) + { + decoded = (ParametriOpzioni)serializer.Deserialize(reader); + done = true; + } + } + } + return done; + } + + } +} diff --git a/FraMan.Core/HwInOut/AGB/Opzioni.cs b/FraMan.Core/HwInOut/AGB/Opzioni.cs index 9ebe533..2c0dee0 100644 --- a/FraMan.Core/HwInOut/AGB/Opzioni.cs +++ b/FraMan.Core/HwInOut/AGB/Opzioni.cs @@ -19,7 +19,7 @@ namespace FraMan.Core.HwInOut.AGB public string DescrizioneOpzione { get; set; } [XmlElement(ElementName = "Valore")] - public DateTime Valore { get; set; } + public string Valore { get; set; } } } diff --git a/FraMan.Core/HwInOut/AGB/Parametri.cs b/FraMan.Core/HwInOut/AGB/Parametri.cs index 056fc4b..34b6f62 100644 --- a/FraMan.Core/HwInOut/AGB/Parametri.cs +++ b/FraMan.Core/HwInOut/AGB/Parametri.cs @@ -19,7 +19,7 @@ namespace FraMan.Core.HwInOut.AGB public string DescrizioneParametro { get; set; } [XmlElement(ElementName = "ValoreCorrente")] - public int ValoreCorrente { get; set; } + public string ValoreCorrente { get; set; } [XmlElement(ElementName = "Tipo")] public string Tipo { get; set; } diff --git a/FraMan.Core/HwInOut/AGB/ParametriOpzioni.cs b/FraMan.Core/HwInOut/AGB/ParametriOpzioni.cs index a82af95..5602387 100644 --- a/FraMan.Core/HwInOut/AGB/ParametriOpzioni.cs +++ b/FraMan.Core/HwInOut/AGB/ParametriOpzioni.cs @@ -3,10 +3,17 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using System.Xml.Serialization; namespace FraMan.Core.HwInOut.AGB { - internal class Parametri + + + [XmlRoot(ElementName = "ParametriOpzioni")] + public class ParametriOpzioni { + + [XmlElement(ElementName = "Parametri")] + public List Parametri { get; set; } } } diff --git a/FraMan.DataLayer/FraMan.DataLayer.csproj b/FraMan.DataLayer/FraMan.DataLayer.csproj index 0caa366..4c4af62 100644 --- a/FraMan.DataLayer/FraMan.DataLayer.csproj +++ b/FraMan.DataLayer/FraMan.DataLayer.csproj @@ -1,10 +1,10 @@ - + Debug AnyCPU - 15ce1125-bace-45d6-aec5-cb65c2e5d1b6 + {15CE1125-BACE-45D6-AEC5-CB65C2E5D1B6} Library Properties FraMan.DataLayer @@ -31,24 +31,24 @@ 4 - - - - - - - - - - - - - - + + + + + + + + + + + {fffad4cf-0dec-4e9b-b7fd-7316ac12a809} + FraMan.Core + + - + \ No newline at end of file diff --git a/FraMan.Test/FraMan.Test.csproj b/FraMan.Test/FraMan.Test.csproj index 679ce12..e288734 100644 --- a/FraMan.Test/FraMan.Test.csproj +++ b/FraMan.Test/FraMan.Test.csproj @@ -48,6 +48,19 @@ + + PreserveNewest + + + + + {fffad4cf-0dec-4e9b-b7fd-7316ac12a809} + FraMan.Core + + + {15ce1125-bace-45d6-aec5-cb65c2e5d1b6} + FraMan.DataLayer + \ No newline at end of file diff --git a/FraMan.Test/Program.cs b/FraMan.Test/Program.cs index 63e71ff..90bde50 100644 --- a/FraMan.Test/Program.cs +++ b/FraMan.Test/Program.cs @@ -1,6 +1,9 @@ -using System; +using FraMan.Core.HwInOut.AGB; +using System; using System.Collections.Generic; +using System.IO; using System.Linq; +using System.Runtime.CompilerServices; using System.Text; using System.Threading.Tasks; @@ -10,16 +13,59 @@ namespace FraMan.Test { static void Main(string[] args) { + // effettua chaimata x test lettura parametri + string separator = "---------------------------"; + string defFile = "./Data/TestParamOpt.opt"; + Console.WriteLine(separator); + Console.WriteLine("- Test lettura Parametri opzionali"); + Console.WriteLine(separator); + Console.WriteLine(); + Console.WriteLine("Premere un tasto per proseguire"); + Console.ReadLine(); + Console.WriteLine($"Inserire percorso oppure enter per default ({defFile}):"); + var fPath = Console.ReadLine(); + if (string.IsNullOrEmpty(fPath)) + { + fPath = defFile; + } + var fullPath = Path.GetFullPath(fPath); + // preparo output + var parOpt = new ParametriOpzioni(); + bool fatto = DataManager.ReadParamOpt(fullPath, ref parOpt); + if (!fatto) + { + Console.WriteLine("Errore in lettura dati"); + } + else + { + Console.WriteLine("Effettuata lettura dati:"); + Console.WriteLine(separator); + int idx = 0; + foreach (var item in parOpt.Parametri) + { + Console.WriteLine($"Par.{idx++:000}:"); + Console.WriteLine($"Nome: {item.NomeParametro}"); + Console.WriteLine($"Descr: {item.DescrizioneParametro}"); + Console.WriteLine($"Valore: {item.ValoreCorrente}"); + // se lista mostro opzioni: + if(item.Tipo.ToLower()=="list") + { + int j = 0; + Console.WriteLine($"# Opzioni ammesse: {item.Opzioni.Count}"); + foreach (var opz in item.Opzioni) + { + Console.WriteLine($"{j++:00}) {opz.DescrizioneOpzione} --> {opz.Valore}"); + } + } + // chiudo + Console.WriteLine(separator); + Console.WriteLine(); + } + } - - // using System.Xml.Serialization; - // XmlSerializer serializer = new XmlSerializer(typeof(ParametriOpzioni)); - // using (StringReader reader = new StringReader(xml)) - // { - // var test = (ParametriOpzioni)serializer.Deserialize(reader); - // } - + Console.WriteLine("Premere un tasto per chiudere"); + Console.ReadLine(); } } } diff --git a/FraMan.sln b/FraMan.sln index 4c4ee20..022e02f 100644 --- a/FraMan.sln +++ b/FraMan.sln @@ -5,6 +5,10 @@ VisualStudioVersion = 17.11.35219.272 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FraMan.Core", "FraMan.Core\FraMan.Core.csproj", "{FFFAD4CF-0DEC-4E9B-B7FD-7316AC12A809}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FraMan.DataLayer", "FraMan.DataLayer\FraMan.DataLayer.csproj", "{15CE1125-BACE-45D6-AEC5-CB65C2E5D1B6}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FraMan.Test", "FraMan.Test\FraMan.Test.csproj", "{A224B6C9-6385-404C-B60F-C97209B65816}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -15,6 +19,14 @@ Global {FFFAD4CF-0DEC-4E9B-B7FD-7316AC12A809}.Debug|Any CPU.Build.0 = Debug|Any CPU {FFFAD4CF-0DEC-4E9B-B7FD-7316AC12A809}.Release|Any CPU.ActiveCfg = Release|Any CPU {FFFAD4CF-0DEC-4E9B-B7FD-7316AC12A809}.Release|Any CPU.Build.0 = Release|Any CPU + {15CE1125-BACE-45D6-AEC5-CB65C2E5D1B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {15CE1125-BACE-45D6-AEC5-CB65C2E5D1B6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {15CE1125-BACE-45D6-AEC5-CB65C2E5D1B6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {15CE1125-BACE-45D6-AEC5-CB65C2E5D1B6}.Release|Any CPU.Build.0 = Release|Any CPU + {A224B6C9-6385-404C-B60F-C97209B65816}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A224B6C9-6385-404C-B60F-C97209B65816}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A224B6C9-6385-404C-B60F-C97209B65816}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A224B6C9-6385-404C-B60F-C97209B65816}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE