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 ///