diff --git a/IOB-UT-NEXT/Config/IobConfTree.cs b/IOB-UT-NEXT/Config/IobConfTree.cs
index c6c84b86..ee6d6996 100644
--- a/IOB-UT-NEXT/Config/IobConfTree.cs
+++ b/IOB-UT-NEXT/Config/IobConfTree.cs
@@ -1,6 +1,7 @@
using IOB_UT_NEXT.Config;
using IOB_UT_NEXT.Config.Base;
using IOB_UT_NEXT.Config.Special;
+using IOB_UT_NEXT.Iob.Services;
using MapoSDK;
using Newtonsoft.Json;
using NLog;
@@ -1067,7 +1068,7 @@ namespace IOB_UT_NEXT.Config
{
string rawData = GetYaml();
// prova anche ad inviare il contenuto al server IO...
- string resp = utils.ExecCallPostPlain($"{urlSaveYaml}", rawData);
+ string resp = HttpService.ExecCallPostPlain($"{urlSaveYaml}", rawData);
answ = resp == "OK";
}
catch
diff --git a/IOB-UT-NEXT/IOB-UT-NEXT.csproj b/IOB-UT-NEXT/IOB-UT-NEXT.csproj
index 3d146a76..2ee59c5c 100644
--- a/IOB-UT-NEXT/IOB-UT-NEXT.csproj
+++ b/IOB-UT-NEXT/IOB-UT-NEXT.csproj
@@ -204,6 +204,7 @@
+
diff --git a/IOB-UT-NEXT/Iob/Services/NetService.cs b/IOB-UT-NEXT/Iob/Services/NetService.cs
new file mode 100644
index 00000000..3ef5415c
--- /dev/null
+++ b/IOB-UT-NEXT/Iob/Services/NetService.cs
@@ -0,0 +1,78 @@
+using NLog;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Net.NetworkInformation;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace IOB_UT_NEXT.Iob.Services
+{
+ public class NetService
+ {
+ #region Public Methods
+
+ ///
+ /// IP della macchina
+ ///
+ ///
+ public static string GetIP()
+ {
+ NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces();
+ String sIpAddr = string.Empty;
+ try
+ {
+ foreach (NetworkInterface adapter in nics)
+ {
+ if (sIpAddr == String.Empty)// only return IP Address from first card
+ {
+ IPInterfaceProperties properties = adapter.GetIPProperties();
+ foreach (var item in properties.UnicastAddresses)
+ {
+ if (item.Address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
+ {
+ sIpAddr = item.Address.ToString();
+ }
+ }
+ }
+ }
+ }
+ catch (Exception exc)
+ {
+ lg.Error(exc);
+ }
+ return sIpAddr;
+ }
+
+ ///
+ /// Macaddress della macchina
+ ///
+ ///
+ public static string GetMACAddress()
+ {
+ NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces();
+ String sMacAddress = string.Empty;
+ foreach (NetworkInterface adapter in nics)
+ {
+ if (sMacAddress == String.Empty)// only return MAC Address from first card
+ {
+ IPInterfaceProperties properties = adapter.GetIPProperties();
+ //sMacAddress = adapter.GetPhysicalAddress().ToString();
+ sMacAddress = string.Join(":", (from z in adapter.GetPhysicalAddress().GetAddressBytes() select z.ToString("X2")).ToArray());
+ }
+ }
+ return sMacAddress;
+ }
+
+ #endregion Public Methods
+
+ #region Internal Fields
+
+ ///
+ /// Classe logger
+ ///
+ internal static Logger lg = LogManager.GetCurrentClassLogger();
+
+ #endregion Internal Fields
+ }
+}
\ No newline at end of file
diff --git a/IOB-UT-NEXT/baseUtils.cs b/IOB-UT-NEXT/baseUtils.cs
index 8ba6c442..4d9d95d0 100644
--- a/IOB-UT-NEXT/baseUtils.cs
+++ b/IOB-UT-NEXT/baseUtils.cs
@@ -108,231 +108,6 @@ namespace IOB_UT_NEXT
return answ;
}
- ///
- /// Effettua chiamata URL e restituisce risultato, SE NON E' in veto send (x mitigare chiamate...)
- ///
- ///
- ///
- public static string callUrl(string URL)
- {
- string answ = "";
- // controllo se ho un VETO all'invio...
- if (dtVetoSend < DateTime.Now)
- {
- answ = CallUrlGet(URL);
- }
- return answ;
- }
-
- ///
- /// Effettua chiamata URL e restituisce risultato
- ///
- ///
- ///
- ///
- public static string callUrl(string URL, string payload)
- {
- string answ = "";
- // controllo se ho un VETO all'invio...
- if (dtVetoSend < DateTime.Now)
- {
- answ = CallUrlPost(URL, payload);
- }
- // restituisco valore!
- return answ;
- }
-
- ///
- /// Metodo chiamata URL con POST async
- ///
- ///
- ///
- ///
- ///
- public static async Task callUrlAsync(string URL, string payload, CancellationToken ct = default)
- {
- try
- {
- Stopwatch sw = new Stopwatch();
- sw.Start();
-
- // Se hai un payload, probabilmente è una POST
- var content = new StringContent(payload, Encoding.UTF8, "application/json");
-
- // Qui il thread viene RILASCIATO. La CPU dell'istanza va a 0%
- // mentre aspetta la risposta dal server.
- HttpResponseMessage response = await _httpClient.PostAsync(URL, content, ct);
-
- response.EnsureSuccessStatusCode();
-
- sw.Stop();
- TrackUrlCall(URL, sw.Elapsed);
-
- return await response.Content.ReadAsStringAsync();
- }
- catch (OperationCanceledException)
- {
- // Gestisci la cancellazione (quando chiudi l'app o scade il timeout)
- return "Canceled";
- }
- catch (Exception ex)
- {
- // Gestisci errori di rete
- return $"Error: {ex.Message}";
- }
- }
-
- ///
- /// Metodo chiamata URL con GET async
- ///
- ///
- ///
- ///
- public static async Task callUrlAsync(string URL, CancellationToken ct = default)
- {
- try
- {
- Stopwatch sw = new Stopwatch();
- sw.Start();
-
- // Qui il thread viene RILASCIATO. La CPU dell'istanza va a 0%
- // mentre aspetta la risposta dal server.
- HttpResponseMessage response = await _httpClient.GetAsync(URL, ct);
-
- response.EnsureSuccessStatusCode();
-
- sw.Stop();
- TrackUrlCall(URL, sw.Elapsed);
- return await response.Content.ReadAsStringAsync();
- }
- catch (OperationCanceledException)
- {
- // Gestisci la cancellazione (quando chiudi l'app o scade il timeout)
- return "Canceled";
- }
- catch (Exception ex)
- {
- // Gestisci errori di rete
- return $"Error: {ex.Message}";
- }
- }
-
- ///
- /// Effettua chiamata URL IMMEDIATAMENTE e restituisce risultato
- ///
- ///
- ///
- public static string CallUrlGet(string URL)
- {
- try
- {
- // Gestione certificati self-signed
- HttpClientHandler handler = new HttpClientHandler();
- if (URL.Contains("10.74.82."))
- {
- handler.ServerCertificateCustomValidationCallback =
- HttpClientHandler.DangerousAcceptAnyServerCertificateValidator;
- }
-
- using (var client = new HttpClient(handler))
- {
- Stopwatch sw = new Stopwatch();
- sw.Start();
- // Timeout personalizzabile
- client.Timeout = TimeSpan.FromMilliseconds(5000);
-
- // Header custom
- client.DefaultRequestHeaders.UserAgent.ParseAdd(CRS("appName"));
-
- // GET sincrona
- var response = client.GetAsync(URL).Result;
-
- string answ = response.Content.ReadAsStringAsync().Result;
-
- sw.Stop();
- TrackUrlCall(URL, sw.Elapsed);
-
- return answ;
- }
- }
- catch (Exception exc)
- {
- int pauseSendMSec = nextPauseSendMSec;
- dtVetoSend = DateTime.Now.AddMilliseconds(pauseSendMSec);
-
- if (logValuePermit(URL))
- {
- lg.Error($"CallUrlGet | Errore chiamando {URL} | wait {pauseSendMSec} ms{Environment.NewLine}Eccezione:{Environment.NewLine}{exc}");
- }
-
- return "";
- }
- }
-
- ///
- /// Effettua chiamata IMMEDIATAMENTE URL e restituisce risultato
- ///
- ///
- ///
- ///
- public static string CallUrlPost(string URL, string payload)
- {
- string answ = "";
- Stopwatch sw = new Stopwatch();
- sw.Start();
-
- try
- {
- // Gestione certificati self-signed
- HttpClientHandler handler = new HttpClientHandler();
- if (URL.Contains("10.74."))
- {
- handler.ServerCertificateCustomValidationCallback =
- HttpClientHandler.DangerousAcceptAnyServerCertificateValidator;
- }
-
- using (var client = new HttpClient(handler))
- {
- // Timeout personalizzabile
- client.Timeout = TimeSpan.FromMilliseconds(5000);
-
- // Header custom
- client.DefaultRequestHeaders.UserAgent.ParseAdd($"{CRS("appName")}-PAYLOAD");
-
- // Corpo JSON
- var content = new StringContent(payload, Encoding.UTF8, "application/json");
-
- // POST sincrono
- var response = client.PostAsync(URL, content).Result;
-
- answ = response.Content.ReadAsStringAsync().Result;
-
- // Log identico al tuo
- if (answ != "OK")
- {
- if (logValuePermit($"{URL}|[{answ}]"))
- {
- lg.Error($"CallUrlPost | POST fallito | ans: [{answ}]:{Environment.NewLine}- URL{Environment.NewLine}{URL}{Environment.NewLine}- payload{Environment.NewLine}{payload}");
- }
- }
- }
- }
- catch (Exception exc)
- {
- int pauseSendMSec = nextPauseSendMSec;
- dtVetoSend = DateTime.Now.AddMilliseconds(pauseSendMSec);
-
- if (logValuePermit(URL))
- {
- lg.Error($"CallUrlPost | Errore chiamando {URL} | wait {pauseSendMSec} ms | Dump Payload:{Environment.NewLine}{payload}{Environment.NewLine}Eccezione:{Environment.NewLine}{exc}");
- }
- }
-
- sw.Stop();
- TrackUrlCall(URL, sw.Elapsed);
- return answ;
- }
-
///
/// Test esistenza/creazione directory
///
@@ -418,157 +193,6 @@ namespace IOB_UT_NEXT
return ConfigurationManager.AppSettings[key] ?? string.Empty;
}
- ///
- /// Effettua chiamata URL tramite RestSharp e restituisce risultato, SE NON E' in veto send (x mitigare chiamate...)
- ///
- /// URI da chiamare
- /// Chiamata rapida (timeout rapido = 5sec)
- ///
- public static string ExecCallGet(string url, bool fastCall = false)
- {
- string answ = "";
- // divido key tra base e opzionale...
- Uri uri = new Uri(url);
- string baseUrl = $"{uri.Scheme}://{uri.Host}{(uri.IsDefaultPort ? "" : $":{uri.Port}")}";
- string resource = uri.AbsolutePath;
- RestClientOptions restOptStd = new RestClientOptions
- {
- BaseUrl = new Uri(baseUrl),
- Timeout = TimeSpan.FromSeconds(60)
- };
- if (!string.IsNullOrEmpty(url))
- {
- if (fastCall)
- {
- restOptStd.Timeout = TimeSpan.FromSeconds(5);
- }
- try
- {
- // client chiamate rest
- using (var client = new RestClient(restOptStd))
- {
- var actReq = new RestRequest(resource, Method.Get);
- // effettuo vera chiamata
- var currResp = client.Get(actReq);
- if (currResp.StatusCode == System.Net.HttpStatusCode.OK && currResp.Content != null)
- {
- answ = currResp.Content ?? "";
- }
- }
- }
- catch (Exception exc)
- {
- lg.Error($"Eccezione in callRestUrl{Environment.NewLine}{exc}");
- }
- }
- return answ;
- }
-
- ///
- /// Effettua chiamata URL tramite RestSharp e restituisce risultato, SE NON E' in veto send (x mitigare chiamate...)
- ///
- /// URI da chiamare
- /// Payload da allegare (già serializzato)
- /// Chiamata rapida (timeout rapido = 5sec)
- ///
- public static string ExecCallPostJson(string url, string payload, bool fastCall = false)
- {
- string answ = "";
-
- // divido key tra base e opzionale...
- Uri uri = new Uri(url);
- string baseUrl = $"{uri.Scheme}://{uri.Host}{(uri.IsDefaultPort ? "" : $":{uri.Port}")}";
- string resource = uri.AbsolutePath;
- RestClientOptions restOptStd = new RestClientOptions
- {
- BaseUrl = new Uri(baseUrl),
- Timeout = TimeSpan.FromSeconds(60)
- };
- Stopwatch sw = new Stopwatch();
- sw.Start();
-
- if (!string.IsNullOrEmpty(url))
- {
- if (fastCall)
- {
- restOptStd.Timeout = TimeSpan.FromSeconds(5);
- }
- try
- {
- // client chiamate rest
- using (var client = new RestClient(restOptStd))
- {
- var actReq = new RestRequest(resource, Method.Post);
- actReq.AddJsonBody(payload);
- // effettuo vera chiamata
- var currResp = client.Post(actReq);
- if (currResp.StatusCode == System.Net.HttpStatusCode.OK && currResp.Content != null)
- {
- answ = currResp.Content ?? "";
- }
- }
- }
- catch (Exception exc)
- {
- lg.Error($"Eccezione in callRestUrlJson{Environment.NewLine}{exc}");
- }
- }
- return answ;
- }
-
- ///
- /// Effettua chiamata URL tramite RestSharp e restituisce risultato, SE NON E' in veto send (x mitigare chiamate...)
- ///
- /// URI da chiamare
- /// Payload da allegare (già serializzato)
- /// Chiamata rapida (timeout rapido = 5sec)
- ///
- public static string ExecCallPostPlain(string url, string payload, bool fastCall = false)
- {
- string answ = "";
- // divido key tra base e opzionale...
- Uri uri = new Uri(url);
- string baseUrl = $"{uri.Scheme}://{uri.Host}{(uri.IsDefaultPort ? "" : $":{uri.Port}")}";
- string resource = uri.AbsolutePath;
- RestClientOptions restOptStd = new RestClientOptions
- {
- BaseUrl = new Uri(baseUrl),
- Timeout = TimeSpan.FromSeconds(60)
- };
- Stopwatch sw = new Stopwatch();
- sw.Start();
-
- if (!string.IsNullOrEmpty(url))
- {
- if (fastCall)
- {
- restOptStd.Timeout = TimeSpan.FromSeconds(5);
- }
- try
- {
- // client chiamate rest
- using (var client = new RestClient(restOptStd))
- {
- var actReq = new RestRequest(resource, Method.Post);
- actReq.AddStringBody(payload, ContentType.Plain);
- // effettuo vera chiamata
- var currResp = client.Post(actReq);
- if (currResp.StatusCode == System.Net.HttpStatusCode.OK && currResp.Content != null)
- {
- answ = currResp.Content ?? "";
- }
- }
- }
- catch (Exception exc)
- {
- lg.Error($"Eccezione in callRestUrlJson | rawUrl: {url} {Environment.NewLine}{exc}");
- }
- }
- sw.Stop();
- TrackUrlCall(url, sw.Elapsed);
- return answ;
- }
-
///
/// Calcolo MD5 del fine indicato
///
@@ -603,6 +227,7 @@ namespace IOB_UT_NEXT
return num;
}
+#if false
///
/// IP della macchina
///
@@ -657,7 +282,8 @@ namespace IOB_UT_NEXT
}
}
return sMacAddress;
- }
+ }
+#endif
///
/// Restituisce una stringa di soli caratteri numerici (stripe caratteri alfabetici)
diff --git a/IOB-UT-NEXT/utils.cs b/IOB-UT-NEXT/utils.cs
index 8c46fff2..cc7bd526 100644
--- a/IOB-UT-NEXT/utils.cs
+++ b/IOB-UT-NEXT/utils.cs
@@ -1,4 +1,5 @@
-using System;
+using IOB_UT_NEXT.Iob.Services;
+using System;
using System.IO;
using System.Linq;
diff --git a/IOB-WIN-FORM/AdapterForm.cs b/IOB-WIN-FORM/AdapterForm.cs
index 03a838c5..613b9706 100644
--- a/IOB-WIN-FORM/AdapterForm.cs
+++ b/IOB-WIN-FORM/AdapterForm.cs
@@ -1,6 +1,7 @@
using IOB_UT_NEXT;
using IOB_UT_NEXT.Config;
using IOB_UT_NEXT.Config.Base;
+using IOB_UT_NEXT.Iob.Services;
using MapoSDK;
using Newtonsoft.Json;
using NLog;
@@ -1461,7 +1462,7 @@ namespace IOB_WIN_FORM
// salvo nuovo valore invio
iobObj.LastSendSet(sendKey, DateTime.Now);
// segnalo reboot (programma - url file)...
- await utils.callUrlAsync(iobObj.urlReboot);
+ await HttpService.CallUrlAsync(iobObj.urlReboot);
}
}
else
@@ -2271,16 +2272,16 @@ namespace IOB_WIN_FORM
if (utils.CRB("ConfToCloud"))
{
// invio su cloud...
- answ = await utils.callUrlAsync($"{urlUploadFileCloud}{CurrIOB}", rawData);
+ answ = await HttpService.CallUrlAsync($"{urlUploadFileCloud}{CurrIOB}", rawData);
}
else
{
// provo invio locale
- answ = utils.callUrl($"{urlUploadFile}{CurrIOB}", rawData);
+ answ = HttpService.CallUrl($"{urlUploadFile}{CurrIOB}", rawData);
// se va male invio cloud...
if (answ.ToUpper() != "OK")
{
- answ = await utils.callUrlAsync($"{urlUploadFileCloud}{CurrIOB}", rawData);
+ answ = await HttpService.CallUrlAsync($"{urlUploadFileCloud}{CurrIOB}", rawData);
}
}
}
diff --git a/IOB-WIN-FORM/Iob/Generic.cs b/IOB-WIN-FORM/Iob/Generic.cs
index ab7cb93c..da8cc0ef 100644
--- a/IOB-WIN-FORM/Iob/Generic.cs
+++ b/IOB-WIN-FORM/Iob/Generic.cs
@@ -1426,7 +1426,7 @@ namespace IOB_WIN_FORM.Iob
if (!isMulti)
{
// invio chiamata URL x reset ODL su macchina
- rawSplit = await utils.callUrlAsync(urlForceSplit);
+ rawSplit = await HttpService.CallUrlAsync(urlForceSplit);
fatto = (rawSplit != "KO") ? true : false;
}
// se multi gestisco il bit delle tavole...
@@ -1437,7 +1437,7 @@ namespace IOB_WIN_FORM.Iob
// invio chiamata URL x reset ODL su macchina, ATTENZIONE scriviamo
// | al posto di "#" che in URL sarebbe filtrato...
fullUrl = $"{urlForceSplit}&multi={item}";
- rawSplit = await utils.callUrlAsync(fullUrl);
+ rawSplit = await HttpService.CallUrlAsync(fullUrl);
lgDebug($"Esecuzione forceSplit | URL: {fullUrl} | esito: {rawSplit}");
}
fatto = (rawSplit == "OK") ? true : false;
@@ -2063,7 +2063,7 @@ namespace IOB_WIN_FORM.Iob
lgTrace("AutoSnapshotDossier abilitato");
// chiamo stored x creare Snapshot Dossier giornalieri fino alla data...
- callResp = utils.callUrl(urlFixDailyDossier);
+ callResp = HttpService.CallUrl(urlFixDailyDossier);
fatto = callResp == "OK";
lgDebug($"Esecuzione ProcessAutoDossier completata --> esito: {callResp}");
}
@@ -2143,7 +2143,7 @@ namespace IOB_WIN_FORM.Iob
if (dtStart.Date < adesso.Date)
{
// chiamo stored x creare ODL giornalieri alla data...
- string autoOdlRes = utils.callUrl(urlFixDailyOdl);
+ string autoOdlRes = HttpService.CallUrl(urlFixDailyOdl);
fatto = autoOdlRes == "OK";
// imposto x prox controllo veto a 10 min
VetoProcessAutoOdl = adesso.AddMinutes(10);
@@ -2165,7 +2165,7 @@ namespace IOB_WIN_FORM.Iob
if (!isMulti)
{
// chiamo stored x creare ODL giornalieri alla data + conferma pezzi...
- autoOdlRes = utils.callUrl(urlFixDailyOdlConfPzCount);
+ autoOdlRes = HttpService.CallUrl(urlFixDailyOdlConfPzCount);
}
else
{
@@ -2173,7 +2173,7 @@ namespace IOB_WIN_FORM.Iob
foreach (var item in IOBConfFull.Device.MultiIobList)
{
fullUrl = $@"{urlCommand("fixDailyOdlConfPzCount")}{item}";
- autoOdlRes = await utils.callUrlAsync(fullUrl);
+ autoOdlRes = await HttpService.CallUrlAsync(fullUrl);
}
}
fatto = autoOdlRes == "OK";
@@ -2197,7 +2197,7 @@ namespace IOB_WIN_FORM.Iob
rawDataInizio = "";
if (!isMulti)
{
- rawDataInizio = await utils.callUrlAsync(urlInizioOdlIob);
+ rawDataInizio = await HttpService.CallUrlAsync(urlInizioOdlIob);
DateTime.TryParse(rawDataInizio, out inizioOdl);
}
else
@@ -2207,7 +2207,7 @@ namespace IOB_WIN_FORM.Iob
foreach (var item in IOBConfFull.Device.MultiIobList)
{
fullUrl = $"{urlInizioOdlIob}|{item}";
- rawDataInizio = await utils.callUrlAsync(fullUrl);
+ rawDataInizio = await HttpService.CallUrlAsync(fullUrl);
DateTime.TryParse(rawDataInizio, out tmpData);
inizioOdl = (tmpData < inizioOdl) ? tmpData : inizioOdl;
}
@@ -2221,7 +2221,7 @@ namespace IOB_WIN_FORM.Iob
{
// controllo SE sono fermo (spento o in manuale) per il
// periodo minimo richiesto...
- rawIdle = await utils.callUrlAsync(urlIdleTime);
+ rawIdle = await HttpService.CallUrlAsync(urlIdleTime);
int.TryParse(rawIdle, out idlePeriod);
}
else
@@ -2231,7 +2231,7 @@ namespace IOB_WIN_FORM.Iob
foreach (var item in IOBConfFull.Device.MultiIobList)
{
fullUrl = $"{urlIdleTime}|{item}";
- rawIdle = await utils.callUrlAsync(fullUrl);
+ rawIdle = await HttpService.CallUrlAsync(fullUrl);
int.TryParse(rawIdle, out tmpIdle);
idlePeriod = tmpIdle > idlePeriod ? tmpIdle : idlePeriod;
}
@@ -2246,7 +2246,7 @@ namespace IOB_WIN_FORM.Iob
// fare, se sfora (RANDOM) > +(50...110)% --> cambia!
if (!callChangeODL && IOBConfFull.Odl.ChangeOdlMode == "SIMUL")
{
- var rawCount = await utils.callUrlAsync(urlGetNumPzCurrODL);
+ var rawCount = await HttpService.CallUrlAsync(urlGetNumPzCurrODL);
if (int.TryParse(rawCount, out var numPzReqOdl))
{
int limitQty = (numPzReqOdl * rndGen.Next(150, 210)) / 100;
@@ -2756,21 +2756,21 @@ namespace IOB_WIN_FORM.Iob
{
// leggo PRIMA ODL ....
calcUrl = string.IsNullOrEmpty(forceMach) ? urlGetCurrODL : urlGetCurrODL.Replace(IOBConfFull.General.CodIOB, forceMach);
- lastIdxODL = utils.callUrl(calcUrl);
+ lastIdxODL = HttpService.CallUrl(calcUrl);
lgTrace($"Lettura ODL dall'url {calcUrl} --> {lastIdxODL}");
// se ho valori in coda da trasmettere uso dati REDIS
if (forceCountRec)
{
// uso dati da TCiclo registrati...
calcUrl = string.IsNullOrEmpty(forceMach) ? urlGetPzCountRec : urlGetPzCountRec.Replace(IOBConfFull.General.CodIOB, forceMach);
- currServerCount = utils.callUrl(calcUrl);
+ currServerCount = HttpService.CallUrl(calcUrl);
lgInfo($"Lettura contapezzi da TCiclo registrati dall'url {calcUrl} --> num pz: {currServerCount}");
}
else
{
// uso il contapezzi dichiarato dall'IOB stesso
calcUrl = string.IsNullOrEmpty(forceMach) ? urlGetPzCount : urlGetPzCount.Replace(IOBConfFull.General.CodIOB, forceMach);
- currServerCount = utils.callUrl(calcUrl);
+ currServerCount = HttpService.CallUrl(calcUrl);
lgInfo($"Lettura contapezzi dall'url {calcUrl} --> {currServerCount}");
}
// controllo: SE NON HO ODL...
@@ -3213,8 +3213,8 @@ namespace IOB_WIN_FORM.Iob
}
string rawData = JsonConvert.SerializeObject(ActiveAlarmList);
- string resp = utils.CallUrlPost(lastUrl, rawData);
- //string resp = utils.callUrlAsync(lastUrl, rawData);
+ string resp = HttpService.CallUrlPost(lastUrl, rawData);
+ //string resp = HttpService.CallUrlAsync(lastUrl, rawData);
if (resp != null)
{
if (resp.ToUpper() == "OK")
@@ -3258,7 +3258,7 @@ namespace IOB_WIN_FORM.Iob
if (await CheckServerAliveAsync())
{
// chiamo URL!
- string answ = await utils.callUrlAsync(lastUrl, payload);
+ string answ = await HttpService.CallUrlAsync(lastUrl, payload);
// loggo!
lgInfo($"[SEND payload] TipoURL: {tipoUrl} | {listQueueVal.Count} records --> {answ}");
@@ -3346,7 +3346,7 @@ namespace IOB_WIN_FORM.Iob
if (await CheckServerAliveAsync())
{
// chiamo URL!
- string answ = await utils.callUrlAsync(lastUrl);
+ string answ = await HttpService.CallUrlAsync(lastUrl);
// loggo!
lgDebug(string.Format("[SEND] {0} -> {1}", queueVal, answ));
// se oltre 1 min NON era online --> check pezzi!
@@ -3870,7 +3870,7 @@ namespace IOB_WIN_FORM.Iob
await Task.Delay(rand.Next(150, 500));
}
- string resp = await utils.callUrlAsync(urlAlive);
+ string resp = await HttpService.CallUrlAsync(urlAlive);
if (resp == "OK") return true;
}
catch (Exception ex)
@@ -5252,7 +5252,7 @@ namespace IOB_WIN_FORM.Iob
// vieto controllo prima di 5 sec... da configurare?
if (DateTime.Now.Subtract(vetoCheckOdl).TotalSeconds > IOBConfFull.Odl.VetoCheckOdlSec)
{
- string sCurrODL = utils.CallUrlGet(urlGetCurrODL);
+ string sCurrODL = HttpService.CallUrlGet(urlGetCurrODL);
int.TryParse(sCurrODL, out cODL);
currIdxODL = cODL;
vetoCheckOdl = DateTime.Now;
@@ -5594,7 +5594,7 @@ namespace IOB_WIN_FORM.Iob
{
lgInfo("chiamata URL " + url2call);
}
- var rawData = utils.CallUrlGet(url2call);
+ var rawData = HttpService.CallUrlGet(url2call);
// deserializzo e recupero KVP...
var dictArtSrv = JsonConvert.DeserializeObject>(rawData);
// se fosse una chiamata con valore vuoto --> salvo intera tabella...
@@ -5641,7 +5641,7 @@ namespace IOB_WIN_FORM.Iob
lgInfo("chiamata URL " + url2call);
}
// è direttamente il risultato!
- answ = utils.CallUrlGet(url2call);
+ answ = HttpService.CallUrlGet(url2call);
}
// restituisco
return answ;
@@ -5659,11 +5659,11 @@ namespace IOB_WIN_FORM.Iob
{
lgInfo("chiamata URL " + url2call);
}
- answ = utils.CallUrlGet(url2call);
+ answ = HttpService.CallUrlGet(url2call);
// se vuoto faccio seconda prova...
if (string.IsNullOrEmpty(answ) || answ == "[]")
{
- answ = utils.CallUrlGet(url2call);
+ answ = HttpService.CallUrlGet(url2call);
}
return answ;
}
@@ -5704,7 +5704,7 @@ namespace IOB_WIN_FORM.Iob
{
lgInfo("chiamata URL " + url2call);
}
- answ = await utils.callUrlAsync(url2call);
+ answ = await HttpService.CallUrlAsync(url2call);
}
return answ;
}
@@ -6182,7 +6182,7 @@ namespace IOB_WIN_FORM.Iob
// PONTE SYNC/ASYNC: Ora sw.Stop() aspetterà la fine reale dell'operazione
Task.Run(async () =>
{
- var rawListPODL = await utils.callUrlAsync(urlGetNextPODL);
+ var rawListPODL = await HttpService.CallUrlAsync(urlGetNextPODL);
if (!string.IsNullOrEmpty(rawListPODL))
{
reqPOdlList = JsonConvert.DeserializeObject>(rawListPODL) ?? new List();
@@ -6324,7 +6324,7 @@ namespace IOB_WIN_FORM.Iob
DateTime dataDoc = DateTime.Today;
DateTime.TryParse(fileName, out dataDoc);
// cerco lotto x giornata...
- string sIdxODL = utils.callUrl(urlGetOdlAtDate(dataDoc));
+ string sIdxODL = HttpService.CallUrl(urlGetOdlAtDate(dataDoc));
int.TryParse(sIdxODL, out idxODL);
// chiamo conversione
TimeSpan timeElaps = fpm.doProcess(fileItem, idxODL);
@@ -6435,7 +6435,7 @@ namespace IOB_WIN_FORM.Iob
plcWriteParams(ref updatedPar);
// invio su cloud parametri!
string rawData = JsonConvert.SerializeObject(updatedPar);
- utils.callUrl($"{urlUpdateWriteParams}", rawData);
+ HttpService.CallUrl($"{urlUpdateWriteParams}", rawData);
lgInfo($"Notifica a server scrittura {updatedPar.Count} parametri");
}
}
@@ -6726,7 +6726,7 @@ namespace IOB_WIN_FORM.Iob
// invio ANCHE in MP-IO l'update delle info...
string remUrl = urlSetHashDict;
string dictPayload = JsonConvert.SerializeObject(redHashWeek);
- await utils.callUrlAsync(remUrl, dictPayload);
+ await HttpService.CallUrlAsync(remUrl, dictPayload);
}
}
@@ -6986,7 +6986,7 @@ namespace IOB_WIN_FORM.Iob
// PONTE SYNC/ASYNC: Ora sw.Stop() aspetterà la fine reale dell'operazione
Task.Run(async () =>
{
- var rawListPODL = await utils.callUrlAsync(urlGetNextPODL);
+ var rawListPODL = await HttpService.CallUrlAsync(urlGetNextPODL);
if (!string.IsNullOrEmpty(rawListPODL))
{
try
@@ -7128,7 +7128,7 @@ namespace IOB_WIN_FORM.Iob
url2call = $"{urlRemTask2ExeTav(codTav)}{taskName}";
}
- await utils.callUrlAsync(url2call);
+ await HttpService.CallUrlAsync(url2call);
}
return answ;
}
@@ -7179,7 +7179,7 @@ namespace IOB_WIN_FORM.Iob
{
bool answ = false;
DateTime dtCurr = DateTime.Now;
- string resp = await utils.callUrlAsync($"{urlODLClose}{idxOdl}&dtEve={dtRif}&dtCurr={dtCurr}");
+ string resp = await HttpService.CallUrlAsync($"{urlODLClose}{idxOdl}&dtEve={dtRif}&dtCurr={dtCurr}");
answ = resp == "OK";
return answ;
}
@@ -7200,7 +7200,7 @@ namespace IOB_WIN_FORM.Iob
Task.Run(async () =>
{
// invio chiamata URL x chiusura ODL su macchina
- string callResp = await utils.callUrlAsync(fullUrl);
+ string callResp = await HttpService.CallUrlAsync(fullUrl);
answ = callResp == "OK";
})
.GetAwaiter()
@@ -7277,7 +7277,7 @@ namespace IOB_WIN_FORM.Iob
// salvo nuovo valore invio
LastSendSet(sendKey, DateTime.Now);
// procedo
- var result = await utils.callUrlAsync(urlSetM2IOB);
+ var result = await HttpService.CallUrlAsync(urlSetM2IOB);
lgInfo($"chiamata URL {urlSetM2IOB} | result: {result}");
}
}
@@ -7351,7 +7351,7 @@ namespace IOB_WIN_FORM.Iob
// invio e salvo...
string remUrl = urlSaveMachIobConf;
string dictPayload = JsonConvert.SerializeObject(currDict);
- await utils.callUrlAsync(remUrl, dictPayload);
+ await HttpService.CallUrlAsync(remUrl, dictPayload);
lgTrace("Invio MachineConf effettuato");
}
}
@@ -7377,7 +7377,7 @@ namespace IOB_WIN_FORM.Iob
{
string url2call = $"{urlSetOptVal}pName={paramName}&pValue={paramValue}";
lgInfo("chiamata URL " + url2call);
- await utils.callUrlAsync(url2call);
+ await HttpService.CallUrlAsync(url2call);
}
}
}
@@ -7410,7 +7410,7 @@ namespace IOB_WIN_FORM.Iob
Task.Run(async () =>
{
// invio chiamata URL x chiusura ODL su macchina
- string callResp = await utils.callUrlAsync(fullUrl);
+ string callResp = await HttpService.CallUrlAsync(fullUrl);
answ = callResp == "OK";
})
.GetAwaiter()
@@ -7440,7 +7440,7 @@ namespace IOB_WIN_FORM.Iob
Task.Run(async () =>
{
// invio chiamata URL x chiusura ODL su macchina
- string callResp = await utils.callUrlAsync(fullUrl);
+ string callResp = await HttpService.CallUrlAsync(fullUrl);
answ = callResp == "OK";
})
.GetAwaiter()
@@ -7606,7 +7606,7 @@ namespace IOB_WIN_FORM.Iob
// se abilitato faccio invio e salvo nuovo valore
if (sendEnab)
{
- var resp = utils.callUrl($"{urlSaveMemMap}", rawData);
+ var resp = HttpService.CallUrl($"{urlSaveMemMap}", rawData);
}
}
else
@@ -7681,7 +7681,7 @@ namespace IOB_WIN_FORM.Iob
// versione upsert
tipoCall = urlUpdateWriteParams;
}
- var resp = utils.callUrl($"{tipoCall}", rawData);
+ var resp = HttpService.CallUrl($"{tipoCall}", rawData);
}
else
{
@@ -7993,7 +7993,7 @@ namespace IOB_WIN_FORM.Iob
try
{
// invio chiamata URL x chiusura ODL su macchina
- string callResp = await utils.callUrlAsync(fullUrl);
+ string callResp = await HttpService.CallUrlAsync(fullUrl);
fatto = (callResp != "KO") ? true : false;
}
catch
@@ -8037,7 +8037,7 @@ namespace IOB_WIN_FORM.Iob
try
{
// invio chiamata URL x chiusura ODL su macchina
- string callResp = await utils.callUrlAsync(fullUrl);
+ string callResp = await HttpService.CallUrlAsync(fullUrl);
fatto = (callResp != "KO") ? true : false;
}
catch
@@ -8083,7 +8083,7 @@ namespace IOB_WIN_FORM.Iob
try
{
// invio chiamata URL x chiusura ODL su macchina
- string callResp = await utils.callUrlAsync(fullUrl);
+ string callResp = await HttpService.CallUrlAsync(fullUrl);
fatto = (callResp != "KO") ? true : false;
}
catch
@@ -8107,7 +8107,7 @@ namespace IOB_WIN_FORM.Iob
Task.Run(async () =>
{
// invio chiamata URL x chiusura ODL su macchina
- string callResp = await utils.callUrlAsync(fullUrl);
+ string callResp = await HttpService.CallUrlAsync(fullUrl);
fatto = (callResp != "KO") ? true : false;
})
.GetAwaiter()
@@ -8139,7 +8139,7 @@ namespace IOB_WIN_FORM.Iob
Task.Run(async () =>
{
// invio chiamata URL x chiusura ODL su macchina
- string callResp = await utils.callUrlAsync(fullUrl);
+ string callResp = await HttpService.CallUrlAsync(fullUrl);
fatto = (callResp != "KO") ? true : false;
})
.GetAwaiter()
@@ -8168,7 +8168,7 @@ namespace IOB_WIN_FORM.Iob
// PONTE SYNC/ASYNC: Ora sw.Stop() aspetterà la fine reale dell'operazione
Task.Run(async () =>
{
- string resp = await utils.callUrlAsync(urlEncoded);
+ string resp = await HttpService.CallUrlAsync(urlEncoded);
int.TryParse(resp, out answ);
})
.GetAwaiter()
@@ -8214,7 +8214,7 @@ namespace IOB_WIN_FORM.Iob
numIncr = delta > maxSendPzCountBlock + minSendPzCountBlock ? maxSendPzCountBlock : delta - minSendPzCountBlock;
// invio il num max di pezzi ammesso in blocco!
lastUrl = $"{urlAddPzCount}{numIncr}".Replace(IOBConfFull.General.CodIOB, fullCode);
- string resp = utils.CallUrlGet(lastUrl);
+ string resp = HttpService.CallUrlGet(lastUrl);
if (!string.IsNullOrEmpty(resp))
{
// dalla risposta (come numero) capisco SE ha aggiunto i pezzi (e quanti)
@@ -8226,7 +8226,7 @@ namespace IOB_WIN_FORM.Iob
lgInfo($"SEND incremento contapezzi: send: {numIncr} | resp: {qtyAdded} | contapezziMES: {pzCountMes}");
// invio conferma contapezzi..
string fullUrl = $"{urlSetPzCount}{pzCountMes}".Replace(IOBConfFull.General.CodIOB, fullCode);
- string retVal = utils.callUrl(fullUrl);
+ string retVal = HttpService.CallUrl(fullUrl);
// verifica se tutto OK
if (retVal != $"{pzCountMes}")
{
@@ -8288,7 +8288,7 @@ namespace IOB_WIN_FORM.Iob
numIncr = delta > maxSendPzCountBlock + minSendPzCountBlock ? maxSendPzCountBlock : delta - minSendPzCountBlock;
// invio il num max di pezzi ammesso in blocco!
lastUrl = $"{urlAddPzCount}{numIncr}";
- string resp = utils.CallUrlGet(lastUrl);
+ string resp = HttpService.CallUrlGet(lastUrl);
if (!string.IsNullOrEmpty(resp))
{
// dalla risposta (come numero) capisco SE ha aggiunto i pezzi (e quanti)
@@ -8300,7 +8300,7 @@ namespace IOB_WIN_FORM.Iob
lgInfo($"SEND incremento contapezzi: send: {numIncr} | resp: {qtyAdded} | contapezziIOB: {contapezziIOB}");
// invio conferma contapezzi..
string fullUrl = $"{urlSetPzCount}{contapezziIOB}";
- string retVal = utils.callUrl(fullUrl);
+ string retVal = HttpService.CallUrl(fullUrl);
// verifica se tutto OK
if (retVal != contapezziIOB.ToString())
{
@@ -8434,7 +8434,7 @@ namespace IOB_WIN_FORM.Iob
try
{
// invio chiamata URL x avvio PODL su macchina
- string rawSplit = await utils.callUrlAsync(fullUrl);
+ string rawSplit = await HttpService.CallUrlAsync(fullUrl);
fatto = (rawSplit != "KO") ? true : false;
}
catch
@@ -8459,7 +8459,7 @@ namespace IOB_WIN_FORM.Iob
try
{
// invio chiamata URL x avvio PODL su macchina
- string rawSplit = await utils.callUrlAsync(fullUrl);
+ string rawSplit = await HttpService.CallUrlAsync(fullUrl);
fatto = (rawSplit != "KO") ? true : false;
}
catch
@@ -8760,7 +8760,7 @@ namespace IOB_WIN_FORM.Iob
private async Task currOdlStart()
{
DateTime inizioOdl = DateTime.Now;
- string rawDataInizio = await utils.callUrlAsync(urlInizioOdlIob);
+ string rawDataInizio = await HttpService.CallUrlAsync(urlInizioOdlIob);
DateTime.TryParse(rawDataInizio, out inizioOdl);
return inizioOdl;
}
@@ -8900,7 +8900,7 @@ namespace IOB_WIN_FORM.Iob
await Task.Delay(delay);
}
- string callResp = await utils.callUrlAsync(urlIobEnabled);
+ string callResp = await HttpService.CallUrlAsync(urlIobEnabled);
if (callResp == "OK") return true;
}
catch (Exception exc)
@@ -9208,7 +9208,7 @@ namespace IOB_WIN_FORM.Iob
plcWriteParams(ref updatedPar);
// invio su cloud parametri!
string rawData = JsonConvert.SerializeObject(updatedPar);
- utils.CallUrlPost($"{urlUpdateWriteParams}", rawData);
+ HttpService.CallUrlPost($"{urlUpdateWriteParams}", rawData);
lgInfo($"Notificato a server scrittura {updatedPar.Count} parametri");
}
else
@@ -9218,7 +9218,7 @@ namespace IOB_WIN_FORM.Iob
{
// invio su cloud parametri!
string rawData = JsonConvert.SerializeObject(currWritePar);
- var res = utils.CallUrlPost($"{urlUpdateWriteParams}", rawData);
+ var res = HttpService.CallUrlPost($"{urlUpdateWriteParams}", rawData);
lgInfo($"Reinviato a server stato {updatedPar.Count} parametri WRITE");
lastWriteParamsUpsert = adesso;
}
@@ -9473,12 +9473,12 @@ namespace IOB_WIN_FORM.Iob
// prova ad avviare/chiudere PODL relativo (eventualmente duplicandolo)
dtEve = $"{dtStartPOdl:yyyyMMddHHmmssfff}";
dtCurr = $"{DateTime.Now:yyyyMMddHHmmssfff}";
- await utils.callUrlAsync($"{urlOdlStartFromPOdl}{idxPOdl}&dtEve={dtEve}&dtCurr={dtCurr}");
+ await HttpService.CallUrlAsync($"{urlOdlStartFromPOdl}{idxPOdl}&dtEve={dtEve}&dtCurr={dtCurr}");
// ora chiamo chiusura...
dtEve = $"{dtEndPOdl:yyyyMMddHHmmssfff}";
dtCurr = $"{DateTime.Now:yyyyMMddHHmmssfff}";
- await utils.callUrlAsync($"{urlPODLClose}{idxPOdl}&dtEve={dtEve}&dtCurr={dtCurr}");
+ await HttpService.CallUrlAsync($"{urlPODLClose}{idxPOdl}&dtEve={dtEve}&dtCurr={dtCurr}");
})
.GetAwaiter()
.GetResult();
@@ -9506,7 +9506,7 @@ namespace IOB_WIN_FORM.Iob
// invio ANCHE in MP-IO l'update delle info...
string remUrl = urlSetHashDict;
string dictPayload = JsonConvert.SerializeObject(currDict);
- await utils.callUrlAsync(remUrl, dictPayload);
+ await HttpService.CallUrlAsync(remUrl, dictPayload);
//await callUrlWithPayloadAsync(remUrl, dictPayload, true);
//await callUrlWithPayloadAsync(remUrl, dictPayload, false);
}
diff --git a/IOB-WIN-FORM/Iob/Simula.cs b/IOB-WIN-FORM/Iob/Simula.cs
index 8ac522b9..992dd3ec 100644
--- a/IOB-WIN-FORM/Iob/Simula.cs
+++ b/IOB-WIN-FORM/Iob/Simula.cs
@@ -1,5 +1,6 @@
using IOB_UT_NEXT;
using IOB_UT_NEXT.Config;
+using IOB_UT_NEXT.Iob.Services;
using MapoSDK;
using Newtonsoft.Json;
using System;
@@ -1045,7 +1046,7 @@ namespace IOB_WIN_FORM.Iob
DateTime adesso = DateTime.Now;
// faccio cmq tutto...
- string autoOdlRes = utils.callUrl(urlFixDailyOdl);
+ string autoOdlRes = HttpService.CallUrl(urlFixDailyOdl);
// salvo lettura
lastReadPLC = adesso;
@@ -1267,7 +1268,7 @@ namespace IOB_WIN_FORM.Iob
{
fullUrl = $"{urlSetPzCount.Replace(IOBConfFull.General.CodIOB, $"{IOBConfFull.General.CodIOB}|TAV_{nP}")}{contapezziPLC}";
}
- string retVal = utils.callUrl(fullUrl);
+ string retVal = HttpService.CallUrl(fullUrl);
// verifica salvataggio
if (retVal != contapezziIOB.ToString())
{
@@ -1279,7 +1280,7 @@ namespace IOB_WIN_FORM.Iob
}
else
{
- string retVal = utils.callUrl($"{urlSetPzCount}{contapezziIOB}");
+ string retVal = HttpService.CallUrl($"{urlSetPzCount}{contapezziIOB}");
if (retVal != contapezziIOB.ToString())
{
// errore salvataggio contapezzi
@@ -1442,7 +1443,7 @@ namespace IOB_WIN_FORM.Iob
{
fullUrl = $"{urlSetPzCount.Replace(IOBConfFull.General.CodIOB, $"{IOBConfFull.General.CodIOB}|TAV_{nP}")}{contapezziIOB}";
}
- string retVal = utils.callUrl(fullUrl);
+ string retVal = HttpService.CallUrl(fullUrl);
// verifica se tutto OK
if (retVal != contapezziIOB.ToString())
{
@@ -1496,7 +1497,7 @@ namespace IOB_WIN_FORM.Iob
contapezziPLC++;
// invio contapezzi...
string fullUrl = $"{urlSetPzCount.Replace(IOBConfFull.General.CodIOB, $"{IOBConfFull.General.CodIOB}|TAV_{nP}")}{contapezziIOB}";
- string retVal = utils.callUrl(fullUrl);
+ string retVal = HttpService.CallUrl(fullUrl);
}
// se cP > 0 --> segnalo bit tavola...
if (cP == 1)
@@ -1599,10 +1600,10 @@ namespace IOB_WIN_FORM.Iob
// PONTE SYNC/ASYNC: Ora sw.Stop() aspetterà la fine reale dell'operazione
Task.Run(async () =>
{
- var rawListArt = await utils.callUrlAsync(urlGetCurrArt);
- var rawListDOSS = await utils.callUrlAsync(urlGetCurrDOSS);
- var rawListPODL = await utils.callUrlAsync(urlGetNextPODL);
- var rawLVFasi = await utils.callUrlAsync(urlGetListValFasiPodl);
+ var rawListArt = await HttpService.CallUrlAsync(urlGetCurrArt);
+ var rawListDOSS = await HttpService.CallUrlAsync(urlGetCurrDOSS);
+ var rawListPODL = await HttpService.CallUrlAsync(urlGetNextPODL);
+ var rawLVFasi = await HttpService.CallUrlAsync(urlGetListValFasiPodl);
if (!string.IsNullOrEmpty(rawListArt))
{
@@ -1750,9 +1751,9 @@ namespace IOB_WIN_FORM.Iob
// PONTE SYNC/ASYNC: Ora sw.Stop() aspetterà la fine reale dell'operazione
Task.Run(async () =>
{
- var rawListArt = await utils.callUrlAsync(urlGetCurrArt);
- var rawListDOSS = await utils.callUrlAsync(urlGetCurrDOSS);
- var rawListPODL = await utils.callUrlAsync(urlGetNextPODL);
+ var rawListArt = await HttpService.CallUrlAsync(urlGetCurrArt);
+ var rawListDOSS = await HttpService.CallUrlAsync(urlGetCurrDOSS);
+ var rawListPODL = await HttpService.CallUrlAsync(urlGetNextPODL);
if (!string.IsNullOrEmpty(rawListArt))
{
try
@@ -2165,7 +2166,7 @@ namespace IOB_WIN_FORM.Iob
private void sendDataItemsList(List dataItems)
{
string rawData = JsonConvert.SerializeObject(dataItems);
- utils.CallUrlPost($"{urlSaveDataItems}", rawData);
+ HttpService.CallUrlPost($"{urlSaveDataItems}", rawData);
}
///
diff --git a/IOB-WIN-FORM/MainForm.cs b/IOB-WIN-FORM/MainForm.cs
index f7729be3..72ec1d1d 100644
--- a/IOB-WIN-FORM/MainForm.cs
+++ b/IOB-WIN-FORM/MainForm.cs
@@ -1,5 +1,6 @@
using IOB_UT_NEXT;
using IOB_UT_NEXT.Config;
+using IOB_UT_NEXT.Iob.Services;
using MapoSDK;
using MathNet.Numerics.Distributions;
using Newtonsoft.Json;
@@ -29,6 +30,11 @@ namespace IOB_WIN_FORM
///
public static Logger lg;
+ ///
+ /// Configurazione gerarchica completa (v 4.x.x.x)
+ ///
+ public IobConfTree IOBConfFull = new IobConfTree();
+
///
/// Data ultimo controllo comunicazione
///
@@ -113,7 +119,6 @@ namespace IOB_WIN_FORM
}
else
{
-
if (utils.dtVetoPing < DateTime.Now)
{
IPStatus pingStatus = GetPingStatus();
@@ -123,7 +128,7 @@ namespace IOB_WIN_FORM
try
{
// chiamo URL, se restituisce "OK" è alive!
- string callResp = utils.callUrl(urlAlive);
+ string callResp = HttpService.CallUrl(urlAlive);
answ = (callResp == "OK");
}
catch (Exception exc)
@@ -403,39 +408,17 @@ namespace IOB_WIN_FORM
///
/// URL per recuperare i file dell'IOB (SENZA IOB)
///
- protected string urlDownloadFile
- {
- get => $"http://{MPIP}{MPURL}/IOB/getFiles/";
- }
+ protected string urlDownloadFile => $"http://{MPIP}{MPURL}/IOB/getFiles/";
///
/// URL per recuperare i file dell'IOB su CLOUD (SENZA IOB)
///
- protected string urlDownloadFileCloud
- {
- get
- {
- return $"{baseUrl}IOB/getFiles/";
- }
- }
+ protected string urlDownloadFileCloud => $"{baseUrl}IOB/getFiles/";
///
/// URL per chiedere quale sia la IOB da acquisire/gestire (se c'è...)
///
- protected string urlIob2call
- {
- get
- {
- string answ = "";
- try
- {
- answ = string.Format(@"http://{0}{1}{2}{3}", MPIP, MPURL, CMDIOB2CALL, utils.GetIP());
- }
- catch
- { }
- return answ;
- }
- }
+ protected string urlIob2call => $"http://{MPIP}{MPURL}{CMDIOB2CALL}{NetService.GetIP()}";
///
/// URL per segnalazione reboot...
@@ -444,34 +427,31 @@ namespace IOB_WIN_FORM
{
get
{
- string answ = "";
+ // 1. Creiamo l'URL base (chiamando GetIP una sola volta)
+ string baseUrl = $"http://{MPIP}{MPURL}{CMDREBO}{NetService.GetIP()}";
+
try
{
- answ = string.Format(@"http://{0}{1}{2}{3}&mac={4}", MPIP, MPURL, CMDREBO, utils.GetIP(), utils.GetMACAddress());
+ // 2. Proviamo ad accodare il MAC Address
+ return $"{baseUrl}&mac={NetService.GetMACAddress()}";
}
catch
{
- answ = string.Format(@"http://{0}{1}{2}{3}", MPIP, MPURL, CMDREBO, utils.GetIP());
+ // 3. Se GetMACAddress() fallisce, restituiamo l'URL senza MAC
+ return baseUrl;
}
- return answ;
}
}
///
/// URL per salvare i file dell'IOB (SENZA IOB)
///
- protected string urlUploadFile
- {
- get => $"http://{MPIP}{MPURL}/IOB/uploadFile/";
- }
+ protected string urlUploadFile => $"http://{MPIP}{MPURL}/IOB/uploadFile/";
///
/// URL per salvare i file dell'IOB su CLOUD (SENZA IOB)
///
- protected string urlUploadFileCloud
- {
- get => $"{baseUrl}IOB/uploadFile/";
- }
+ protected string urlUploadFileCloud => $"{baseUrl}IOB/uploadFile/";
#endregion Protected Properties
@@ -496,6 +476,7 @@ namespace IOB_WIN_FORM
lg.Factory.Configuration.Variables["codIOB"] = "MAIN";
lg.Info(txt2log);
}
+
///
/// Effettua logging WARN corretto impostando anche la variabile IOB prima di scrivere...
///
@@ -526,14 +507,6 @@ namespace IOB_WIN_FORM
this.LayoutMdi(MdiLayout.TileHorizontal);
}
- protected override void OnFormClosing(FormClosingEventArgs e)
- {
- MainTimer?.Stop();
- MainTimer?.Dispose();
- closeActiveChild();
- base.OnFormClosing(e);
- }
-
///
/// Chiude le finestre child attive
///
@@ -629,7 +602,7 @@ namespace IOB_WIN_FORM
if (pingStatus == IPStatus.Success)
{
// segnalo reboot (programma)...
- utils.callUrl(urlReboot);
+ HttpService.CallUrl(urlReboot);
}
else
{
@@ -643,6 +616,14 @@ namespace IOB_WIN_FORM
displayTaskAndLog("Main Form OK");
}
+ protected override void OnFormClosing(FormClosingEventArgs e)
+ {
+ MainTimer?.Stop();
+ MainTimer?.Dispose();
+ closeActiveChild();
+ base.OnFormClosing(e);
+ }
+
///
/// Apre la finestra child con conf
///
@@ -702,6 +683,8 @@ namespace IOB_WIN_FORM
///
private static bool closed = false;
+ private FormWindowState _lastState = FormWindowState.Minimized;
+
///
/// Nome applicazione (da app.config)
///
@@ -709,58 +692,6 @@ namespace IOB_WIN_FORM
#endregion Private Fields
- #region Private Properties
-
- ///
- /// Configurazione gerarchica completa (v 4.x.x.x)
- ///
- public IobConfTree IOBConfFull = new IobConfTree();
-
- ///
- /// test ping all'indirizzo impostato nei parametri
- ///
- ///
- private IPStatus GetPingStatus()
- {
- IPStatus answ = IPStatus.Unknown;
- // se disabilitato salto...
- if (IOBConfFull != null && IOBConfFull.MapoMes.DisabPing)
- {
- answ = IPStatus.Success;
- }
- else
- {
- IPAddress address;
- PingReply reply;
- using (Ping pingSender = new Ping())
- {
- address = IPAddress.Loopback;
- string ipAdrr = MPIP;
- IPAddress.TryParse(ipAdrr, out address);
- try
- {
- // se != null --> uso address...
- if (address != null)
- {
- reply = pingSender.Send(address, 500);
- }
- else
- {
- reply = pingSender.Send(MPIP, 500);
- }
- }
- catch
- {
- reply = pingSender.Send(IPAddress.Loopback, 100);
- }
- }
- answ = reply.Status;
- }
- return answ;
- }
-
- #endregion Private Properties
-
#region Private Methods
private void arrangeWindowsToolStripMenuItem_Click(object sender, EventArgs e)
@@ -904,7 +835,7 @@ namespace IOB_WIN_FORM
// invio in locale!
url2call = $"{urlDownloadFile}{currIob}";
}
- rawData = utils.CallUrlGet(url2call);
+ rawData = HttpService.CallUrlGet(url2call);
if (!string.IsNullOrEmpty(rawData))
{
// deserializzo
@@ -956,6 +887,49 @@ namespace IOB_WIN_FORM
// file MAIN di avvio ripartendo...)
}
+ ///
+ /// test ping all'indirizzo impostato nei parametri
+ ///
+ ///
+ private IPStatus GetPingStatus()
+ {
+ IPStatus answ = IPStatus.Unknown;
+ // se disabilitato salto...
+ if (IOBConfFull != null && IOBConfFull.MapoMes.DisabPing)
+ {
+ answ = IPStatus.Success;
+ }
+ else
+ {
+ IPAddress address;
+ PingReply reply;
+ using (Ping pingSender = new Ping())
+ {
+ address = IPAddress.Loopback;
+ string ipAdrr = MPIP;
+ IPAddress.TryParse(ipAdrr, out address);
+ try
+ {
+ // se != null --> uso address...
+ if (address != null)
+ {
+ reply = pingSender.Send(address, 500);
+ }
+ else
+ {
+ reply = pingSender.Send(MPIP, 500);
+ }
+ }
+ catch
+ {
+ reply = pingSender.Send(IPAddress.Loopback, 100);
+ }
+ }
+ answ = reply.Status;
+ }
+ return answ;
+ }
+
///
/// Carica file ini della configurazione richiesta
///
@@ -1049,8 +1023,6 @@ namespace IOB_WIN_FORM
_lastState = this.WindowState;
}
- private FormWindowState _lastState = FormWindowState.Minimized;
-
///
/// evento visualizzazione
///