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