diff --git a/EgwCoreLib.Lux.Data/Services/BaseServ.cs b/EgwCoreLib.Lux.Data/Services/BaseServ.cs index ee1bc5a1..19b52e97 100644 --- a/EgwCoreLib.Lux.Data/Services/BaseServ.cs +++ b/EgwCoreLib.Lux.Data/Services/BaseServ.cs @@ -37,49 +37,58 @@ namespace EgwCoreLib.Lux.Data.Services _config = Configuration; redisConn = RedisConn; redisDb = redisConn.GetDatabase(); - - // channel name setup - pngChannel = _config.GetValue("ServerConf:PngChannel") ?? "Egw:png:img"; - svgChannel = _config.GetValue("ServerConf:SvgChannel") ?? "Egw:svg:img"; - bomChannel = _config.GetValue("ServerConf:BomChannel") ?? "Egw:bom"; - updateChannel = _config.GetValue("ServerConf:UpdateChannel") ?? "Egw:update"; - shapeChannel = _config.GetValue("ServerConf:ShapeChannel") ?? "Egw:shape:curr"; - hwListChannel = _config.GetValue("ServerConf:HwListChannel") ?? "Egw:hw:list"; - hwOptChannel = _config.GetValue("ServerConf:HwOptChannel") ?? "Egw:hw:opt"; - profListChannel = _config.GetValue("ServerConf:ProfListChannel") ?? "Egw:prof:list"; + // receving channel name setup + chBom = _config.GetValue("ServerConf:ChannelBom") ?? "lux:bom"; + chHwList = _config.GetValue("ServerConf:ChannelHwList") ?? "lux:hw:list"; + chHwOpt = _config.GetValue("ServerConf:ChannelHwOpt") ?? "lux:hw:opt"; + chPng = _config.GetValue("ServerConf:ChannelPng") ?? "lux:png:img"; + chProfList = _config.GetValue("ServerConf:ChannelProfList") ?? "lux:prof:list"; + chShape = _config.GetValue("ServerConf:ChannelShape") ?? "lux:shape:curr"; + chSvg = _config.GetValue("ServerConf:ChannelSvg") ?? "lux:svg:img"; + chUpdate = _config.GetValue("ServerConf:ChannelUpdate") ?? "lux:update"; // Appends ":*" to the channels to enable wildcard subscription for dynamic events - if (!pngChannel.EndsWith(":*")) + fixRecChannel(ref chBom); + fixRecChannel(ref chHwList); + fixRecChannel(ref chHwOpt); + fixRecChannel(ref chPng); + fixRecChannel(ref chProfList); + fixRecChannel(ref chShape); + fixRecChannel(ref chSvg); + fixRecChannel(ref chUpdate); +#if false + if (!chPng.EndsWith(":*")) { - pngChannel += ":*"; + chPng += ":*"; } - if (!svgChannel.EndsWith(":*")) + if (!chSvg.EndsWith(":*")) { - svgChannel += ":*"; + chSvg += ":*"; } - if (!bomChannel.EndsWith(":*")) + if (!chBom.EndsWith(":*")) { - bomChannel += ":*"; + chBom += ":*"; } - if (!updateChannel.EndsWith(":*")) + if (!chUpdate.EndsWith(":*")) { - updateChannel += ":*"; + chUpdate += ":*"; } - if (!shapeChannel.EndsWith(":*")) + if (!chShape.EndsWith(":*")) { - shapeChannel += ":*"; + chShape += ":*"; } - if (!hwListChannel.EndsWith(":*")) + if (!chHwList.EndsWith(":*")) { - hwListChannel += ":*"; + chHwList += ":*"; } - if (!hwOptChannel.EndsWith(":*")) + if (!chHwOpt.EndsWith(":*")) { - hwOptChannel += ":*"; + chHwOpt += ":*"; } - if (!profListChannel.EndsWith(":*")) + if (!chProfList.EndsWith(":*")) { - profListChannel += ":*"; + chProfList += ":*"; } +#endif // Configurazione serializzatore JSON per risolvere errore di loop circolare JSSettings = new JsonSerializerSettings() @@ -88,14 +97,14 @@ namespace EgwCoreLib.Lux.Data.Services }; // Configurazione pipe dei messaggi - PipePng = new MessagePipe(redisConn, pngChannel); - PipeSvg = new MessagePipe(redisConn, svgChannel); - PipeBom = new MessagePipe(RedisConn, bomChannel); - PipeUpdate = new MessagePipe(RedisConn, updateChannel); - PipeShape = new MessagePipe(RedisConn, shapeChannel); - PipeHwList = new MessagePipe(RedisConn, hwListChannel); - PipeHwOpt = new MessagePipe(RedisConn, hwOptChannel); - PipeProfList = new MessagePipe(RedisConn, profListChannel); + PipeBom = new MessagePipe(redisConn, chBom); + PipeHwList = new MessagePipe(redisConn, chHwList); + PipeHwOpt = new MessagePipe(redisConn, chHwOpt); + PipePng = new MessagePipe(redisConn, chPng); + PipeProfList = new MessagePipe(redisConn, chProfList); + PipeShape = new MessagePipe(redisConn, chShape); + PipeSvg = new MessagePipe(redisConn, chSvg); + PipeUpdate = new MessagePipe(redisConn, chUpdate); } #endregion Public Constructors @@ -109,36 +118,37 @@ namespace EgwCoreLib.Lux.Data.Services /// /// Pipe dei messaggi per ritorno HwList da Engine di calcolo verso interfaccia utente. - /// I messaggi vengono inviati sul canale Redis definito da HwListChannel. + /// I messaggi vengono inviati sul canale Redis definito da ChannelHwList. /// public MessagePipe PipeHwList { get; set; } = null!; + /// /// Pipe dei messaggi per ritorno HwOptions calcolate da Engine di calcolo verso interfaccia utente. - /// I messaggi vengono inviati sul canale Redis definito da HwOptChannel. + /// I messaggi vengono inviati sul canale Redis definito da ChannelHwOpt. /// public MessagePipe PipeHwOpt { get; set; } = null!; + /// + /// Pipe dei messaggi per ritorno PNG calcolati da Engine di calcolo verso interfaccia utente. + /// I messaggi vengono inviati sul canale Redis definito da ChannelPng. + /// + public MessagePipe PipePng { get; set; } = null!; + /// /// Pipe dei messaggi per ritorno ProfileList calcolate da Engine di calcolo verso interfaccia utente. - /// I messaggi vengono inviati sul canale Redis definito da ProfListChannel. + /// I messaggi vengono inviati sul canale Redis definito da ChannelProfList. /// public MessagePipe PipeProfList { get; set; } = null!; /// /// Pipe dei messaggi per ritorno Shape calcolate da Engine di calcolo verso interfaccia utente. - /// I messaggi vengono inviati sul canale Redis definito da ShapeChannel. + /// I messaggi vengono inviati sul canale Redis definito da ChannelShape. /// public MessagePipe PipeShape { get; set; } = null!; - /// - /// Pipe dei messaggi per ritorno PNG calcolati da Engine di calcolo verso interfaccia utente. - /// I messaggi vengono inviati sul canale Redis definito da PngChannel. - /// - public MessagePipe PipePng { get; set; } = null!; - /// /// Pipe dei messaggi per ritorno SVG calcolati da Engine di calcolo verso interfaccia utente. - /// I messaggi vengono inviati sul canale Redis definito da SvgChannel. + /// I messaggi vengono inviati sul canale Redis definito da ChannelSvg. /// public MessagePipe PipeSvg { get; set; } = null!; @@ -220,11 +230,6 @@ namespace EgwCoreLib.Lux.Data.Services /// private static Logger Log = LogManager.GetCurrentClassLogger(); - /// - /// Redis channel for BOM related info - /// - private string bomChannel = ""; - /// /// Durata della cache lunga in secondi (predefinito: 5 minuti) /// Utilizzato nella proprietà LongCache per definire quanto a lungo i dati devono essere memorizzati in cache. @@ -237,19 +242,47 @@ namespace EgwCoreLib.Lux.Data.Services /// private int cacheTtlShort = 60 * 1; + /// + /// Redis channel for BOM related info + /// + private string chBom = ""; + /// /// Canale ritorno Hw List /// - private string hwListChannel = ""; + private string chHwList = ""; + /// /// Canale ritorno Hw Options /// - private string hwOptChannel = ""; + private string chHwOpt = ""; + + /// + /// Nome del canale Redis utilizzato per l'invio/ricezione di messaggi relativi a img png. + /// Predefinito a "png:img" con suffisso ":*". + /// + private string chPng = ""; /// /// Canale ritorno Profile List /// - private string profListChannel = ""; + private string chProfList = ""; + + /// + /// Canale ritorno shape calcolate + /// + private string chShape = ""; + + /// + /// Nome del canale Redis utilizzato per l'invio/ricezione di messaggi relativi a img svg. + /// Predefinito a "svg:img" con suffisso ":*". + /// + private string chSvg = ""; + + /// + /// Nome del canale Redis utilizzato per l'invio/ricezione di messaggi di update + /// + private string chUpdate = ""; /// /// Generatore di numeri casuali utilizzato per introdurre variabilità dinamica nelle durate della cache @@ -257,28 +290,28 @@ namespace EgwCoreLib.Lux.Data.Services /// private Random rnd = new Random(); - /// - /// Canale ritorno shape calcolate - /// - private string shapeChannel = ""; - - /// - /// Nome del canale Redis utilizzato per l'invio/ricezione di messaggi relativi a img svg. - /// Predefinito a "svg:img" con suffisso ":*". - /// - private string svgChannel = ""; - - /// - /// Nome del canale Redis utilizzato per l'invio/ricezione di messaggi relativi a img png. - /// Predefinito a "png:img" con suffisso ":*". - /// - private string pngChannel = ""; - - /// - /// Nome del canale Redis utilizzato per l'invio/ricezione di messaggi di update - /// - private string updateChannel = ""; - #endregion Private Fields + + #region Private Methods + + /// + /// Fix Receive Channel (ricerca "like") + /// + /// + private void fixRecChannel(ref string currCh) + { +#if false + if (!currCh.EndsWith(":*")) + { + //currCh += ":*"; + } +#endif + if (!currCh.EndsWith("*")) + { + currCh += "*"; + } + } + + #endregion Private Methods } } \ No newline at end of file diff --git a/EgwCoreLib.Lux.Data/Services/CalcRequestService.cs b/EgwCoreLib.Lux.Data/Services/CalcRequestService.cs index e74fb77f..362ec442 100644 --- a/EgwCoreLib.Lux.Data/Services/CalcRequestService.cs +++ b/EgwCoreLib.Lux.Data/Services/CalcRequestService.cs @@ -14,11 +14,9 @@ namespace EgwCoreLib.Lux.Data.Services { #region Public Constructors - public CalcRequestService(IConfiguration config, IRedisService redisService) + public CalcRequestService(IConfiguration config) { _config = config; - _redisService = redisService; - bomChannel = _config.GetValue("ServerConf:BomChannel") ?? "bom"; // verifico la url base apiUrl = _config.GetValue("ServerConf:Prog.ApiUrl") ?? "https://iis01.egalware.com/lux/srv/api"; routeBasePath = _config.GetValue("ServerConf:RouteBaseUrl") ?? "window"; @@ -61,9 +59,7 @@ namespace EgwCoreLib.Lux.Data.Services #region Private Fields private static Logger Log = LogManager.GetCurrentClassLogger(); - private readonly IRedisService _redisService; private readonly string apiUrl = ""; - private readonly string bomChannel = "bomdev"; private readonly string routeBasePath = ""; private IConfiguration _config; diff --git a/EgwCoreLib.Lux.Data/Services/ImageCacheService.cs b/EgwCoreLib.Lux.Data/Services/ImageCacheService.cs index db3f5ff9..6e959604 100644 --- a/EgwCoreLib.Lux.Data/Services/ImageCacheService.cs +++ b/EgwCoreLib.Lux.Data/Services/ImageCacheService.cs @@ -1,15 +1,8 @@ -using EgwCoreLib.Lux.Core.RestPayload; -using EgwMultiEngineManager.Data; +using EgwMultiEngineManager.Data; using Microsoft.Extensions.Configuration; using Newtonsoft.Json; using NLog; using RestSharp; -using StackExchange.Redis; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace EgwCoreLib.Lux.Data.Services { @@ -22,14 +15,14 @@ namespace EgwCoreLib.Lux.Data.Services _config = config; _redisService = redisService; // conf channels x comunicazione broadcast - hwOptChannel = _config.GetValue("ServerConf:HwOptChannel") ?? "Egw:hw"; - pngChannel = _config.GetValue("ServerConf:PngChannel") ?? "Egw:png:img"; - svgChannel = _config.GetValue("ServerConf:SvgChannel") ?? "Egw:svg:img"; - bomChannel = _config.GetValue("ServerConf:BomChannel") ?? "Egw:bom"; - hmlChannel = _config.GetValue("ServerConf:HwListChannel") ?? "Egw:hml"; - profListChannel = _config.GetValue("ServerConf:ProfListChannel") ?? "Egw:prof"; - shapeChannel = _config.GetValue("ServerConf:ShapeChannel") ?? "Egw:shape"; - updateChannel = _config.GetValue("ServerConf:UpdateChannel") ?? "Egw:update"; + chBom = _config.GetValue("ServerConf:ChannelBom") ?? "lux:bom"; + chHwList = _config.GetValue("ServerConf:ChannelHwList") ?? "lux:hw:list"; + chHwOpt = _config.GetValue("ServerConf:ChannelHwOpt") ?? "lux:hw:opt"; + chPng = _config.GetValue("ServerConf:ChannelPng") ?? "lux:png:img"; + chProfList = _config.GetValue("ServerConf:ChannelProfList") ?? "lux:prof"; + chShape = _config.GetValue("ServerConf:ChannelShape") ?? "lux:shape"; + chSvg = _config.GetValue("ServerConf:ChannelSvg") ?? "lux:svg:img"; + chUpdate = _config.GetValue("ServerConf:ChannelUpdate") ?? "lux:update"; // conf tag x cache liveTag = _config.GetValue("ServerConf:ImageLiveTag") ?? "svg"; cacheTag = _config.GetValue("ServerConf:ImageFileTag") ?? "svgfile"; @@ -138,9 +131,11 @@ namespace EgwCoreLib.Lux.Data.Services { case Constants.EXECENVIRONMENTS.NULL: break; + case Constants.EXECENVIRONMENTS.WINDOW: fType = "svg"; break; + case Constants.EXECENVIRONMENTS.BEAM: case Constants.EXECENVIRONMENTS.WALL: case Constants.EXECENVIRONMENTS.CABINET: @@ -148,7 +143,7 @@ namespace EgwCoreLib.Lux.Data.Services fType = "png"; break; } - + string rndImg = $"{DateTime.Now:HHmmssfff}"; string fullUrl = $"{baseUrl}/{tag}/{imgUID}-{rndImg}.{fType}?env={envir}".Replace("////", "//"); return fullUrl; @@ -203,7 +198,7 @@ namespace EgwCoreLib.Lux.Data.Services { bool done = false; // invio notifica sul canale di update generale... - string notifyChannel = $"{updateChannel}:{env}"; + string notifyChannel = $"{chUpdate}:{env}"; // contenuto è UID long numSent = await _redisService.PublishAsync(notifyChannel, $"{uid}"); done = numSent > 0; @@ -241,7 +236,7 @@ namespace EgwCoreLib.Lux.Data.Services string currKey = $"{redisBaseKey}:{env}:BOM:{uid.Replace("/", ":")}"; var done = await _redisService.SetAsync(currKey, bomContent); // invio notifica nuova svg generata sul canale... viene inviato solo svg con ID nel canale - string notifyChannel = $"{bomChannel}:{uid}"; + string notifyChannel = $"{chBom}:{uid}"; long numSent = await _redisService.PublishAsync(notifyChannel, bomContent); return done; } @@ -257,7 +252,7 @@ namespace EgwCoreLib.Lux.Data.Services string currKey = $"{redisBaseKey}:{env}:HML:{uid.Replace("/", ":")}"; var done = await _redisService.SetAsync(currKey, rawData); // invio notifica nuova svg generata sul canale... viene inviato solo svg con ID nel canale - string notifyChannel = $"{hmlChannel}:{uid}"; + string notifyChannel = $"{chHwList}:{uid}"; long numSent = await _redisService.PublishAsync(notifyChannel, rawData); return done; } @@ -275,7 +270,7 @@ namespace EgwCoreLib.Lux.Data.Services // lascio in cache 15 min x poterlo verificare var done = await _redisService.SetAsync(currKey, xmlContent, TimeSpan.FromMinutes(15)); // invio notifica nuova XML sul canale (inviato solo XML pulito con ID nel canale) - string notifyChannel = $"{hwOptChannel}:{uid}"; + string notifyChannel = $"{chHwOpt}:{uid}"; long numSent = await _redisService.PublishAsync(notifyChannel, xmlContent); return done; } @@ -309,7 +304,7 @@ namespace EgwCoreLib.Lux.Data.Services string currKey = $"{redisBaseKey}:{env}:Img:Png:{imgId.Replace("/", ":")}"; var done = await _redisService.SetAsync(currKey, pngContent); // invio notifica nuova png generata sul canale... viene inviato solo contenuto con ID nel canale - string notifyChannel = $"{pngChannel}:{imgId}"; + string notifyChannel = $"{chPng}:{imgId}"; long numSent = await _redisService.PublishAsync(notifyChannel, "PNG"); // NON pubblico contenuto che x PNG non serve... //long numSent = await _redisService.PublishAsync(notifyChannel, pngContent); @@ -327,7 +322,7 @@ namespace EgwCoreLib.Lux.Data.Services string currKey = $"{redisBaseKey}:{env}:PROFLIST:{uid.Replace("/", ":")}"; var done = await _redisService.SetAsync(currKey, rawData); // invio notifica nuova svg generata sul canale... viene inviato solo svg con ID nel canale - string notifyChannel = $"{profListChannel}:{uid}"; + string notifyChannel = $"{chProfList}:{uid}"; long numSent = await _redisService.PublishAsync(notifyChannel, rawData); return done; } @@ -344,7 +339,7 @@ namespace EgwCoreLib.Lux.Data.Services string currKey = $"{redisBaseKey}:{env}:Shape:{uid}"; var done = await _redisService.SetAsync(currKey, shapeContent); // invio notifica nuova svg generata sul canale... viene inviato solo svg con ID nel canale - string notifyChannel = $"{shapeChannel}:{uid}"; + string notifyChannel = $"{chShape}:{uid}"; long numSent = await _redisService.PublishAsync(notifyChannel, shapeContent); return done; } @@ -378,7 +373,7 @@ namespace EgwCoreLib.Lux.Data.Services string currKey = $"{redisBaseKey}:{env}:Img:Svg:{imgId.Replace("/", ":")}"; var done = await _redisService.SetAsync(currKey, svgContent); // invio notifica nuova svg generata sul canale... viene inviato solo contenuto con ID nel canale - string notifyChannel = $"{svgChannel}:{imgId}"; + string notifyChannel = $"{chSvg}:{imgId}"; long numSent = await _redisService.PublishAsync(notifyChannel, svgContent); return done; } @@ -393,18 +388,18 @@ namespace EgwCoreLib.Lux.Data.Services private readonly string apiUrl = ""; - private readonly string bomChannel = "bom:item"; private readonly string cacheTag = "svgfile"; private readonly string calcTag = "svgpreview"; - private readonly string hmlChannel = "hml:item"; - private readonly string hwOptChannel = "hw:opt"; + private readonly string chBom = "lux:bom"; + private readonly string chHwList = "lux:hw:list"; + private readonly string chHwOpt = "lux:hw:opt"; + private readonly string chPng = "lux:png:img"; + private readonly string chProfList = "lux:prof:list"; + private readonly string chShape = "shape:curr"; + private readonly string chSvg = "lux:svg:img"; + private readonly string chUpdate = "lux::update"; private readonly string imgBasePath = ""; private readonly string liveTag = "svg"; - private readonly string pngChannel = "png:img"; - private readonly string profListChannel = "prof:list"; - private readonly string shapeChannel = "shape:curr"; - private readonly string svgChannel = "svg:img"; - private readonly string updateChannel = "ui:update"; private IConfiguration _config; private string imageBaseUrl = ""; diff --git a/Lux.API/Controllers/GenericController.cs b/Lux.API/Controllers/GenericController.cs index fc1a9a72..447f33d6 100644 --- a/Lux.API/Controllers/GenericController.cs +++ b/Lux.API/Controllers/GenericController.cs @@ -19,7 +19,7 @@ namespace Lux.API.Controllers _config = config; _redisService = redisService; _imgService = imgServ; - pubChannel = _config.GetValue("ServerConf:PubChannel") ?? ""; + chPub = _config.GetValue("ServerConf:ChannelPub") ?? ""; } #endregion Public Constructors @@ -60,7 +60,7 @@ namespace Lux.API.Controllers // da modificare con tipo richiesta... QuestionDTO currArgs = new QuestionDTO(nId, currReq.EnvType, DictExec); - await _redisService.PublishAsync(pubChannel, currArgs.sProcessArgs); + await _redisService.PublishAsync(chPub, currArgs.sProcessArgs); retVal = "DONE"; } sw.Stop(); @@ -97,7 +97,7 @@ namespace Lux.API.Controllers // da modificare con tipo richiesta... QuestionDTO currArgs = new QuestionDTO(nId, EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS.WINDOW, DictExec); - await _redisService.PublishAsync(pubChannel, currArgs.sProcessArgs); + await _redisService.PublishAsync(chPub, currArgs.sProcessArgs); retVal = "DONE"; } sw.Stop(); @@ -111,7 +111,7 @@ namespace Lux.API.Controllers private static Logger Log = LogManager.GetCurrentClassLogger(); private readonly IRedisService _redisService; - private readonly string pubChannel = ""; + private readonly string chPub = ""; private IConfiguration _config; #endregion Private Fields diff --git a/Lux.API/Controllers/WindowController.cs b/Lux.API/Controllers/WindowController.cs index 3e6b752d..f2e048a9 100644 --- a/Lux.API/Controllers/WindowController.cs +++ b/Lux.API/Controllers/WindowController.cs @@ -21,7 +21,7 @@ namespace Lux.API.Controllers _redisService = redisService; _imgService = imgServ; _confService = confServ; - pubChannel = _config.GetValue("ServerConf:PubChannel") ?? ""; + chPub = _config.GetValue("ServerConf:ChannelPub") ?? ""; } #endregion Public Constructors @@ -69,7 +69,7 @@ namespace Lux.API.Controllers // da modificare con tipo richiesta... QuestionDTO currArgs = new QuestionDTO(nId, EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS.WINDOW, DictExec); - await _redisService.PublishAsync(pubChannel, currArgs.sProcessArgs); + await _redisService.PublishAsync(chPub, currArgs.sProcessArgs); svgContent = "DONE"; } sw.Stop(); @@ -111,7 +111,7 @@ namespace Lux.API.Controllers int nId = 1; // da modificare con tipo richiesta... QuestionDTO currArgs = new QuestionDTO(nId, EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS.WINDOW, DictExec); - await _redisService.PublishAsync(pubChannel, currArgs.sProcessArgs); + await _redisService.PublishAsync(chPub, currArgs.sProcessArgs); } /// @@ -247,7 +247,7 @@ namespace Lux.API.Controllers // da modificare con tipo richiesta... QuestionDTO currArgs = new QuestionDTO(nId, EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS.WINDOW, DictExec); - await _redisService.PublishAsync(pubChannel, currArgs.sProcessArgs); + await _redisService.PublishAsync(chPub, currArgs.sProcessArgs); svgContent = "DONE"; } sw.Stop(); @@ -261,7 +261,7 @@ namespace Lux.API.Controllers private static Logger Log = LogManager.GetCurrentClassLogger(); private readonly IRedisService _redisService; - private readonly string pubChannel = ""; + private readonly string chPub = ""; private IConfiguration _config; /// diff --git a/Lux.API/Lux.API.csproj b/Lux.API/Lux.API.csproj index daa7f078..496890e2 100644 --- a/Lux.API/Lux.API.csproj +++ b/Lux.API/Lux.API.csproj @@ -4,7 +4,7 @@ net8.0 enable enable - 0.9.2511.0616 + 0.9.2511.0618 diff --git a/Lux.API/Program.cs b/Lux.API/Program.cs index 038d35cb..5e3c5290 100644 --- a/Lux.API/Program.cs +++ b/Lux.API/Program.cs @@ -62,7 +62,7 @@ app.UsePathBase(baseUrl); logger.Info($"BaseUrl: {baseUrl}"); // log channels di ritorno UI -List listParams = new List() { "PngChannel", "SubChannel", "PubChannel", "SvgChannel" }; +List listParams = new List() { "ChannelPng", "ChannelSub", "ChannelPub", "ChannelSvg" }; foreach (var param in listParams) { logger.Info($"{param}: {configuration.GetValue($"ServerConf:{param}") ?? ""}"); diff --git a/Lux.API/Services/RedisSubscriberService.cs b/Lux.API/Services/RedisSubscriberService.cs index c4baac4f..ccc845af 100644 --- a/Lux.API/Services/RedisSubscriberService.cs +++ b/Lux.API/Services/RedisSubscriberService.cs @@ -12,7 +12,7 @@ namespace Lux.API.Services _subManager = subManager; _processor = processor; _config = config; - subChannel = _config.GetValue("ServerConf:SubChannel") ?? ""; + chSub = _config.GetValue("ServerConf:ChannelSub") ?? ""; } #endregion Public Constructors @@ -21,7 +21,7 @@ namespace Lux.API.Services protected override Task ExecuteAsync(CancellationToken stoppingToken) { - _subManager.Subscribe(subChannel, async (ch, msg) => + _subManager.Subscribe(chSub, async (ch, msg) => { await _processor.HandleResultMessageAsync($"{ch}", $"{msg}"); }); @@ -36,7 +36,7 @@ namespace Lux.API.Services private readonly IConfiguration _config; private readonly ExternalMessageProcessor _processor; private readonly RedisSubscriptionManager _subManager; - private readonly string subChannel = ""; + private readonly string chSub = ""; #endregion Private Fields } diff --git a/Lux.API/appsettings.Development.json b/Lux.API/appsettings.Development.json index b0906ead..2bb4275c 100644 --- a/Lux.API/appsettings.Development.json +++ b/Lux.API/appsettings.Development.json @@ -6,17 +6,17 @@ } }, "ServerConf": { - "PngChannel": "luxdev:png:img", - "SvgChannel": "luxdev:svg:img", - "ShapeChannel": "luxdev:shape:curr", - "HwListChannel": "luxdev:hw:list", - "HwOptChannel": "luxdev:hw:opt", - "ProfListChannel": "luxdev:prof:list", - "BomChannel": "luxdev:bom", - "UpdateChannel": "luxdev:update", + "ChannelPng": "luxdev:png:img", + "ChannelSvg": "luxdev:svg:img", + "ChannelShape": "luxdev:shape:curr", + "ChannelHwList": "luxdev:hw:list", + "ChannelHwOpt": "luxdev:hw:opt", + "ChannelProfList": "luxdev:prof:list", + "ChannelBom": "luxdev:bom", + "ChannelUpdate": "luxdev:update", "BaseUrl": "/lux/srv/", - //"PubChannel": "EgwDevEngineInput", - //"SubChannel": "EgwDevEngineOutput", + //"ChannelPub": "EgwDevEngineInput", + //"ChannelSub": "EgwDevEngineOutput", "ImageBaseUrl": "https://iis01.egalware.com/lux/srv/api/window/" } } diff --git a/Lux.API/appsettings.Production.json b/Lux.API/appsettings.Production.json index 521e3972..b9600590 100644 --- a/Lux.API/appsettings.Production.json +++ b/Lux.API/appsettings.Production.json @@ -7,16 +7,16 @@ }, "ServerConf": { "BaseUrl": "/lux/srv/", - "PngChannel": "Egw:png:img", - "SvgChannel": "Egw:svg:img", - "ShapeChannel": "Egw:shape:curr", - "HwListChannel": "Egw:hw:list", - "HwOptChannel": "Egw:hw:opt", - "ProfListChannel": "Egw:prof:list", - "BomChannel": "Egw:bom", - "UpdateChannel": "Egw:update", - "PubChannel": "EgwEngineInput", - "SubChannel": "EgwEngineOutput", + "ChannelPng": "Egw:png:img", + "ChannelSvg": "Egw:svg:img", + "ChannelShape": "Egw:shape:curr", + "ChannelHwList": "Egw:hw:list", + "ChannelHwOpt": "Egw:hw:opt", + "ChannelProfList": "Egw:prof:list", + "ChannelBom": "Egw:bom", + "ChannelUpdate": "Egw:update", + "ChannelPub": "EgwEngineInput", + "ChannelSub": "EgwEngineOutput", "ImageBaseUrl": "https://office.egalware.com/lux/srv/api/window/" } } diff --git a/Lux.API/appsettings.Staging.json b/Lux.API/appsettings.Staging.json index ccb18f94..194c1cc8 100644 --- a/Lux.API/appsettings.Staging.json +++ b/Lux.API/appsettings.Staging.json @@ -6,16 +6,16 @@ } }, "ServerConf": { - "PngChannel": "luxstag:png:img", - "SvgChannel": "luxstag:svg:img", - "ShapeChannel": "luxstag:shape:curr", - "HwListChannel": "luxstag:hw:list", - "HwOptChannel": "luxstag:hw:opt", - "ProfListChannel": "luxstag:prof:list", - "BomChannel": "luxstag:bom", - "UpdateChannel": "luxstag:update", + "ChannelPng": "luxstag:png:img", + "ChannelSvg": "luxstag:svg:img", + "ChannelShape": "luxstag:shape:curr", + "ChannelHwList": "luxstag:hw:list", + "ChannelHwOpt": "luxstag:hw:opt", + "ChannelProfList": "luxstag:prof:list", + "ChannelBom": "luxstag:bom", + "ChannelUpdate": "luxstag:update", "BaseUrl": "/lux/srv/", - "PubChannel": "EgwEngineInput", - "SubChannel": "EgwEngineOutput" + "ChannelPub": "EgwEngineInput", + "ChannelSub": "EgwEngineOutput" } } diff --git a/Lux.API/appsettings.json b/Lux.API/appsettings.json index a15138a6..f9edf26a 100644 --- a/Lux.API/appsettings.json +++ b/Lux.API/appsettings.json @@ -56,26 +56,26 @@ }, "ServerConf": { "CalcTag": "calc", - "PubChannel": "EgwEngineInput", - "SubChannel": "EgwEngineOutput", + "ChannelPub": "EgwEngineInput", + "ChannelSub": "EgwEngineOutput", - "PngChannel": "luxdev:png:img", - "SvgChannel": "luxdev:svg:img", - "ShapeChannel": "luxdev:shape:curr", - "HwListChannel": "luxdev:hw:list", - "HwOptChannel": "luxdev:hw:opt", - "ProfListChannel": "luxdev:prof:list", - "BomChannel": "luxdev:bom", - "UpdateChannel": "luxdev:update", + "ChannelPng": "luxdev:png:img", + "ChannelSvg": "luxdev:svg:img", + "ChannelShape": "luxdev:shape:curr", + "ChannelHwList": "luxdev:hw:list", + "ChannelHwOpt": "luxdev:hw:opt", + "ChannelProfList": "luxdev:prof:list", + "ChannelBom": "luxdev:bom", + "ChannelUpdate": "luxdev:update", - //"PngChannel": "Egw:png:img", - //"SvgChannel": "Egw:svg:img", - //"ShapeChannel": "Egw:shape:curr", - //"HwListChannel": "Egw:hw:list", - //"HwOptChannel": "Egw:hw:opt", - //"ProfListChannel": "Egw:prof:list", - //"BomChannel": "Egw:bom", - //"UpdateChannel": "Egw:update", + //"ChannelPng": "Egw:png:img", + //"ChannelSvg": "Egw:svg:img", + //"ChannelShape": "Egw:shape:curr", + //"ChannelHwList": "Egw:hw:list", + //"ChannelHwOpt": "Egw:hw:opt", + //"ChannelProfList": "Egw:prof:list", + //"ChannelBom": "Egw:bom", + //"ChannelUpdate": "Egw:update", "BaseUrl": "/lux/srv/", "ImageBaseUrl": "https://iis01.egalware.com/lux/srv/api/window/", "ImageCalcTag": "svg-preview", diff --git a/Lux.UI/Components/Compo/OfferRowMan.razor.cs b/Lux.UI/Components/Compo/OfferRowMan.razor.cs index f11b2ee7..689a931f 100644 --- a/Lux.UI/Components/Compo/OfferRowMan.razor.cs +++ b/Lux.UI/Components/Compo/OfferRowMan.razor.cs @@ -22,7 +22,7 @@ namespace Lux.UI.Components.Compo #region Public Enums /// - /// modalità modifica riga offerta + /// modalit� modifica riga offerta /// public enum EditMode { @@ -276,7 +276,7 @@ namespace Lux.UI.Components.Compo var listCalc = SorListCalc(); foreach (var item in listCalc) { - // se UID è tra quelli da ricalcolare... + // se UID � tra quelli da ricalcolare... if (list2fix.Contains(item.OfferRowUID)) { // chiedo BOM e immagine @@ -311,7 +311,7 @@ namespace Lux.UI.Components.Compo { // imposto edit record EditRecord = curRec; - /// modalitàedit: gestione valori campi record + /// modalit�edit: gestione valori campi record CurrEditMode = EditMode.RecData; } @@ -324,7 +324,7 @@ namespace Lux.UI.Components.Compo protected void DoEditFile(OfferRowModel curRec) { EditRecord = curRec; - /// modalitàedit: gestione JWD + /// modalit�edit: gestione JWD CurrEditMode = EditMode.File; #if false // preparazione dati da record corrente @@ -341,7 +341,7 @@ namespace Lux.UI.Components.Compo protected void DoEditJwd(OfferRowModel curRec) { EditRecord = curRec; - /// modalitàedit: gestione JWD + /// modalit�edit: gestione JWD CurrEditMode = EditMode.SerStruc; // preparazione dati da record corrente PrepareWindowData(EditRecord.SerStruct); @@ -369,19 +369,19 @@ namespace Lux.UI.Components.Compo } /// - /// Seleziono riga senza cambiare modalità editing + /// Seleziono riga senza cambiare modalit� editing /// /// protected void DoSelect(OfferRowModel curRec) { // imposto edit record EditRecord = curRec; - /// modalitàedit: gestione valori campi record + /// modalit�edit: gestione valori campi record CurrEditMode = EditMode.None; } /// - /// Imposta modalità edit ciclo di lavoro + /// Imposta modalit� edit ciclo di lavoro /// /// protected void DoSwapJobCycle(OfferRowModel currRow) @@ -392,7 +392,7 @@ namespace Lux.UI.Components.Compo } /// - /// Imposta modalità ad edit BOM + /// Imposta modalit� ad edit BOM /// /// protected void DoSwapMat(OfferRowModel currRow) @@ -449,7 +449,7 @@ namespace Lux.UI.Components.Compo foreach (var item in listCalc) { await DLService.OffertUpdateAwaitState(item.OfferRowID, true, true); - // poiché non è gestito evento ritorno update window interno si "scassa" --> try catch/ if FALSE + // poich� non � gestito evento ritorno update window interno si "scassa" --> try catch/ if FALSE try { string rColor = CurrSel.GetVal("Color"); @@ -626,7 +626,7 @@ namespace Lux.UI.Components.Compo private List? CurrBomList = null; /// - /// Modalità editint attiva + /// Modalit� editint attiva /// private EditMode CurrEditMode = EditMode.None; @@ -651,12 +651,12 @@ namespace Lux.UI.Components.Compo /// /// Channel update HwOptions /// - private string hwOptChannel = ""; + private string chHwOpt = ""; private string imgBasePath = ""; /// - /// Semaforo x definire se sia già in modalità ionterattiva o di prerendering + /// Semaforo x definire se sia gi� in modalit� ionterattiva o di prerendering /// private bool isInteractive = false; @@ -674,7 +674,7 @@ namespace Lux.UI.Components.Compo /// /// Channel update PNG /// - private string pngChannel = ""; + private string chPng = ""; /// /// Versione precedente JWD x test e confronto @@ -684,7 +684,7 @@ namespace Lux.UI.Components.Compo /// /// Channel update Profile List /// - private string profListChannel = ""; + private string chProfList = ""; /// /// Dizionario richieste @@ -694,12 +694,12 @@ namespace Lux.UI.Components.Compo /// /// Channel update Shape /// - private string shapeChannel = ""; + private string chShape = ""; /// /// Channel update SVG /// - private string svgChannel = ""; + private string chSvg = ""; private int totalCount = 0; @@ -766,11 +766,11 @@ namespace Lux.UI.Components.Compo imgBasePath = Config.GetValue("ServerConf:ImageBaseUrl") ?? ""; genericBasePath = Config.GetValue("ServerConf:GenericBaseUrl") ?? ""; calcTag = Config.GetValue("ServerConf:CalcTag") ?? "calc"; - pngChannel = Config.GetValue("ServerConf:PngChannel") ?? ""; - svgChannel = Config.GetValue("ServerConf:SvgChannel") ?? ""; - shapeChannel = Config.GetValue("ServerConf:ShapeChannel") ?? ""; - hwOptChannel = Config.GetValue("ServerConf:HwOptChannel") ?? ""; - profListChannel = Config.GetValue("ServerConf:ProfListChannel") ?? ""; + chHwOpt = Config.GetValue("ServerConf:ChannelHwOpt") ?? ""; + chPng = Config.GetValue("ServerConf:ChannelPng") ?? ""; + chProfList = Config.GetValue("ServerConf:ChannelProfList") ?? ""; + chShape = Config.GetValue("ServerConf:ChannelShape") ?? ""; + chSvg = Config.GetValue("ServerConf:ChannelSvg") ?? ""; } private async Task DoRecalcOffer() @@ -819,7 +819,7 @@ namespace Lux.UI.Components.Compo // conversione on-the-fly SVG da mostrare if (!string.IsNullOrEmpty(currArgs.newMessage)) { - if (currArgs.msgUid.Equals($"{hwOptChannel}:{EditRecord.OfferRowUID}")) + if (currArgs.msgUid.Equals($"{chHwOpt}:{EditRecord.OfferRowUID}")) { var rawDict = JsonConvert.DeserializeObject>(currArgs.newMessage) ?? new Dictionary(); currHwOption = rawDict; @@ -841,7 +841,7 @@ namespace Lux.UI.Components.Compo // conversione on-the-fly SVG da mostrare if (!string.IsNullOrEmpty(currArgs.newMessage)) { - if (currArgs.msgUid.Equals($"{pngChannel}:{EditRecord.OfferRowUID}")) + if (currArgs.msgUid.Equals($"{chPng}:{EditRecord.OfferRowUID}")) { currPng = currArgs.newMessage; // non devo passarlo al componente... @@ -870,7 +870,7 @@ namespace Lux.UI.Components.Compo // conversione on-the-fly SVG da mostrare if (!string.IsNullOrEmpty(currArgs.newMessage)) { - if (currArgs.msgUid.Equals($"{profListChannel}:{EditRecord.OfferRowUID}")) + if (currArgs.msgUid.Equals($"{chProfList}:{EditRecord.OfferRowUID}")) { try { @@ -918,7 +918,7 @@ namespace Lux.UI.Components.Compo // conversione on-the-fly SVG da mostrare if (!string.IsNullOrEmpty(currArgs.newMessage)) { - if (currArgs.msgUid.StartsWith($"{shapeChannel}:{EditRecord.OfferRowUID}")) + if (currArgs.msgUid.StartsWith($"{chShape}:{EditRecord.OfferRowUID}")) { // deserializzo il dizionario delle risposte... var rawDict = JsonConvert.DeserializeObject>(currArgs.newMessage); @@ -944,7 +944,7 @@ namespace Lux.UI.Components.Compo } /// - /// Ricevuto SVG, se è il mio lo aggiorno... + /// Ricevuto SVG, se � il mio lo aggiorno... /// /// /// @@ -958,7 +958,7 @@ namespace Lux.UI.Components.Compo // conversione on-the-fly SVG da mostrare if (!string.IsNullOrEmpty(currArgs.newMessage)) { - if (currArgs.msgUid.Equals($"{svgChannel}:{EditRecord.OfferRowUID}")) + if (currArgs.msgUid.Equals($"{chSvg}:{EditRecord.OfferRowUID}")) { currSvg = currArgs.newMessage; // salvo in live data... @@ -1289,7 +1289,7 @@ namespace Lux.UI.Components.Compo } /// - /// Verifia ammissibilità display btn ricalcolo BOM da item + /// Verifia ammissibilit� display btn ricalcolo BOM da item /// /// /// @@ -1333,7 +1333,7 @@ namespace Lux.UI.Components.Compo } /// - /// Toggle visibilità modifica file indicando ID della OfferRow corrente (o zero se deselect) + /// Toggle visibilit� modifica file indicando ID della OfferRow corrente (o zero se deselect) /// private void ToggleFileEdit(OfferRowModel? currRec) { diff --git a/Lux.UI/Components/Pages/Scratch.razor.cs b/Lux.UI/Components/Pages/Scratch.razor.cs index ad79aca8..7ee86681 100644 --- a/Lux.UI/Components/Pages/Scratch.razor.cs +++ b/Lux.UI/Components/Pages/Scratch.razor.cs @@ -60,7 +60,7 @@ namespace Lux.UI.Components.Pages apiUrl = Config.GetValue("ServerConf:Prog.ApiUrl") ?? ""; imgBasePath = Config.GetValue("ServerConf:ImageBaseUrl") ?? ""; calcTag = Config.GetValue("ServerConf:ImageCalcTag") ?? ""; - subChannel = Config.GetValue("ServerConf:SvgChannel") ?? ""; + chSub = Config.GetValue("ServerConf:ChannelSvg") ?? ""; DLService.PipeSvg.EA_NewMessage += PipeSvg_EA_NewMessage; } @@ -97,11 +97,11 @@ namespace Lux.UI.Components.Pages private string imgBasePath = ""; /// - /// Semaforo x definire se sia già in modalità ionterattiva o di prerendering + /// Semaforo x definire se sia gi� in modalit� ionterattiva o di prerendering /// private bool isInteractive = false; - private string subChannel = ""; + private string chSub = ""; private string windowUid = "TestWindow"; #endregion Private Fields @@ -115,7 +115,7 @@ namespace Lux.UI.Components.Pages // conversione on-the-fly SVG da mostrare if (!string.IsNullOrEmpty(currArgs.newMessage)) { - if (currArgs.msgUid.Equals($"{subChannel}:{windowUid}")) + if (currArgs.msgUid.Equals($"{chSub}:{windowUid}")) { currSvg = currArgs.newMessage; } diff --git a/Lux.UI/Lux.UI.csproj b/Lux.UI/Lux.UI.csproj index 9e8b5631..698fe88b 100644 --- a/Lux.UI/Lux.UI.csproj +++ b/Lux.UI/Lux.UI.csproj @@ -5,7 +5,7 @@ enable enable aspnet-Lux.UI-a758c101-a2f4-4e38-977d-1c4887dbbd50 - 0.9.2511.0616 + 0.9.2511.0618 diff --git a/Lux.UI/appsettings.Development.json b/Lux.UI/appsettings.Development.json index f0316739..ffc97388 100644 --- a/Lux.UI/appsettings.Development.json +++ b/Lux.UI/appsettings.Development.json @@ -6,15 +6,15 @@ } }, "ServerConf": { - "PngChannel": "luxdev:png:img", - "SvgChannel": "luxdev:svg:img", - "ShapeChannel": "luxdev:shape:curr", - "HwListChannel": "luxdev:hw:list", - "HwOptChannel": "luxdev:hw:opt", - "ProfListChannel": "luxdev:prof:list", - "BomChannel": "luxdev:bom", - "UpdateChannel": "luxdev:update", - "PubChannel": "EgwDevEngineInput", - "SubChannel": "EgwDevEngineOutput" + "ChannelPng": "luxdev:png:img", + "ChannelSvg": "luxdev:svg:img", + "ChannelShape": "luxdev:shape:curr", + "ChannelHwList": "luxdev:hw:list", + "ChannelHwOpt": "luxdev:hw:opt", + "ChannelProfList": "luxdev:prof:list", + "ChannelBom": "luxdev:bom", + "ChannelUpdate": "luxdev:update", + "ChannelPub": "EgwDevEngineInput", + "ChannelSub": "EgwDevEngineOutput" } } diff --git a/Lux.UI/appsettings.Production.json b/Lux.UI/appsettings.Production.json index 29e8ff8b..57f430a4 100644 --- a/Lux.UI/appsettings.Production.json +++ b/Lux.UI/appsettings.Production.json @@ -6,16 +6,16 @@ } }, "ServerConf": { - "PngChannel": "Egw:png:img", - "SvgChannel": "Egw:svg:img", - "ShapeChannel": "Egw:shape:curr", - "HwListChannel": "Egw:hw:list", - "HwOptChannel": "Egw:hw:opt", - "ProfListChannel": "Egw:prof:list", - "BomChannel": "Egw:bom", - "UpdateChannel": "Egw:update", - "PubChannel": "EgwEngineInput", - "SubChannel": "EgwEngineOutput", + "ChannelPng": "Egw:png:img", + "ChannelSvg": "Egw:svg:img", + "ChannelShape": "Egw:shape:curr", + "ChannelHwList": "Egw:hw:list", + "ChannelHwOpt": "Egw:hw:opt", + "ChannelProfList": "Egw:prof:list", + "ChannelBom": "Egw:bom", + "ChannelUpdate": "Egw:update", + "ChannelPub": "EgwEngineInput", + "ChannelSub": "EgwEngineOutput", "Prog.ApiUrl": "https://office.egalware.com/lux/srv/api" } } diff --git a/Lux.UI/appsettings.Staging.json b/Lux.UI/appsettings.Staging.json index a890cf97..577bf87d 100644 --- a/Lux.UI/appsettings.Staging.json +++ b/Lux.UI/appsettings.Staging.json @@ -6,16 +6,16 @@ } }, "ServerConf": { - "PngChannel": "luxstag:png:img", - "SvgChannel": "luxstag:svg:img", - "ShapeChannel": "luxstag:shape:curr", - "HwListChannel": "luxstag:hw:list", - "HwOptChannel": "luxstag:hw:opt", - "ProfListChannel": "luxstag:prof:list", - "BomChannel": "luxstag:bom", - "UpdateChannel": "luxstag:update", - "PubChannel": "EgwEngineInput", - "SubChannel": "EgwEngineOutput", + "ChannelPng": "luxstag:png:img", + "ChannelSvg": "luxstag:svg:img", + "ChannelShape": "luxstag:shape:curr", + "ChannelHwList": "luxstag:hw:list", + "ChannelHwOpt": "luxstag:hw:opt", + "ChannelProfList": "luxstag:prof:list", + "ChannelBom": "luxstag:bom", + "ChannelUpdate": "luxstag:update", + "ChannelPub": "EgwEngineInput", + "ChannelSub": "EgwEngineOutput", "Prog.ApiUrl": "https://iis01.egalware.com/lux/srv/api" } } diff --git a/Lux.UI/appsettings.json b/Lux.UI/appsettings.json index 9007ba16..49e322f2 100644 --- a/Lux.UI/appsettings.json +++ b/Lux.UI/appsettings.json @@ -63,27 +63,16 @@ //"Prog.ApiUrl": "https://office.egalware.com/lux/srv/api", "ImageBaseUrl": "Image", "RouteBaseUrl": "window", - - "PngChannel": "luxdev:png:img", - "SvgChannel": "luxdev:svg:img", - "ShapeChannel": "luxdev:shape:curr", - "HwListChannel": "luxdev:hw:list", - "HwOptChannel": "luxdev:hw:opt", - "ProfListChannel": "luxdev:prof:list", - "BomChannel": "luxdev:bom", - "UpdateChannel": "luxdev:update", - - //"BomChannel": "Egw:bom", - //"HwListChannel": "Egw:hw:list", - //"HwOptChannel": "Egw:hw:opt", - //"ProfListChannel": "Egw:prof:list", - //"ShapeChannel": "Egw:shape:curr", - //"PngChannel": "Egw:png:img", - //"SvgChannel": "Egw:svg:img", - //"UpdateChannel": "Egw:update", - - "PubChannel": "EgwEngineInput", - "SubChannel": "EgwEngineOutput", + "ChannelBom": "luxdev:bom", + "ChannelHwList": "luxdev:hw:list", + "ChannelHwOpt": "luxdev:hw:opt", + "ChannelPng": "luxdev:png:img", + "ChannelProfList": "luxdev:prof:list", + "ChannelPub": "EgwEngineInput", + "ChannelShape": "luxdev:shape:curr", + "ChannelSub": "EgwEngineOutput", + "ChannelSvg": "luxdev:svg:img", + "ChannelUpdate": "luxdev:update", "ImageCalcTag": "live", "ImageFileTag": "cache", "ImageLiveTag": "svg", diff --git a/Resources/ChangeLog.html b/Resources/ChangeLog.html index 6610edb0..4510fb8c 100644 --- a/Resources/ChangeLog.html +++ b/Resources/ChangeLog.html @@ -1,6 +1,6 @@ LUX - Web Windows MES -

Versione: 0.9.2511.0616

+

Versione: 0.9.2511.0618


Note di rilascio:
  • diff --git a/Resources/VersNum.txt b/Resources/VersNum.txt index 95367acd..20e7993e 100644 --- a/Resources/VersNum.txt +++ b/Resources/VersNum.txt @@ -1 +1 @@ -0.9.2511.0616 +0.9.2511.0618 diff --git a/Resources/manifest.xml b/Resources/manifest.xml index 7dfa66cf..2fb0cacd 100644 --- a/Resources/manifest.xml +++ b/Resources/manifest.xml @@ -1,6 +1,6 @@ - 0.9.2511.0616 + 0.9.2511.0618 http://nexus.steamware.net/repository/SWS/GPW/stable/GPW.UI.zip http://nexus.steamware.net/repository/SWS/GPW/stable/ChangeLog.html false