modifiche x riordino chiavi in webCOnfigSetter

This commit is contained in:
Samuele Locatelli
2024-03-01 17:15:55 +01:00
parent 4c2fc5c6f6
commit c4dd04a221
6 changed files with 159 additions and 20 deletions
+16 -1
View File
@@ -1,3 +1,18 @@
# DeployUtils
Progetto per utility in fase di deploy
Progetto per utility in fase di deploy
## WebConfigSetter
Console app dedicata alla gestione install delle web applications.
Viene impiegata per leggere conf da file *.xml (dotNet Framework) + *.json (dotNet core) x uniformare e gestire conf clienti su stringhe connessione, aprametri programmi
## ConfMan.IOB
Applicazione per la gestione, conversione dei file conf x IOB, e per la converzione del formato.
Da completare insieme ad update dell'app IOB-WIN-NEXT.
## MapoDataFiller
Gestione fillup dati MAPO (alternativa ai simulatori) - LEGACY?
BIN
View File
Binary file not shown.
+53
View File
@@ -0,0 +1,53 @@
{
"appSettRules": {
"DbConfConnectionString": "Data Source=localhost\\sqlexpress;Initial Catalog=Jetco_MoonPro;Persist Security Info=True;User ID=steamware;Password=viadante16;",
"MoonProConnectionString": "Data Source=localhost\\sqlexpress;Initial Catalog=Jetco_MoonPro;Persist Security Info=True;User ID=steamware;Password=viadante16;",
"MoonProConnectionStringIS": "Data Source=localhost\\sqlexpress;Initial Catalog=Jetco_MoonPro_IS;Persist Security Info=True;User ID=steamware;Password=viadante16;",
"MoonProConnectionStringES3": "Data Source=localhost\\sqlexpress;Initial Catalog=Jetco_MoonPro_ES3;Persist Security Info=True;User ID=steamware;Password=viadante16;",
"PermessiConnectionString": "Data Source=localhost\\sqlexpress;Initial Catalog=Jetco_MoonPro;Persist Security Info=True;User ID=steamware;Password=viadante16;",
"UtenteCdcConnectionString": "Data Source=localhost\\sqlexpress;Initial Catalog=Jetco_Anagrafica;Persist Security Info=True;User ID=steamware;Password=viadante16;",
"VocabolarioConnectionString": "Data Source=localhost\\sqlexpress;Initial Catalog=Jetco_MoonPro;Persist Security Info=True;User ID=steamware;Password=viadante16;",
"CTrackConnectionString": "Data Source=localhost\\SQLEXPRESS;Initial Catalog=Jetco_C_TRACK;Persist Security Info=True;User id=steamware;Password=viadante16;",
"DevicesAuthConnectionString": "Data Source=localhost\\sqlexpress;Initial Catalog=Jetco_Anagrafica;Persist Security Info=True;User ID=steamware;Password=viadante16;",
"DevicesConnectionString": "Data Source=localhost\\sqlexpress;Initial Catalog=Jetco_Anagrafica;Persist Security Info=True;User ID=steamware;Password=viadante16;",
"MoonProConnectionStringArca": "Data Source=localhost\\sqlexpress;Initial Catalog=Jetco_MoonPro_IS;Persist Security Info=True;User ID=steamware;Password=viadante16;",
"MagDataConnectionString": "Data Source=localhost\\SQLEXPRESS;Initial Catalog=Jetco_MoonPro_MAG;Persist Security Info=True;User ID=steamware;Password=viadante16;",
"MoonProConnectionStringMAG": "Data Source=localhost\\SQLEXPRESS;Initial Catalog=Jetco_MoonPro_MAG;Persist Security Info=True;User ID=steamware;Password=viadante16;",
"mdbConnString": "mongodb://localhost:27017"
},
"connStrRules": {
"MoonProConnectionString": "Data Source=localhost\\sqlexpress;Initial Catalog=Jetco_MoonPro;Persist Security Info=True;User ID=steamware;Password=viadante16;",
"MapoDb.Properties.Settings.MoonProConnectionString": "Data Source=localhost\\sqlexpress;Initial Catalog=Jetco_MoonPro;Persist Security Info=True;User ID=steamware;Password=viadante16;",
"MapoDb.Properties.Settings.MoonPro_IS_ConnectionString": "Data Source=localhost\\sqlexpress;Initial Catalog=Jetco_MoonPro_IS;Persist Security Info=True;User ID=steamware;Password=viadante16;",
"MapoDb.Properties.Settings.C_TRACKConnectionString": "Data Source=localhost\\sqlexpress;Initial Catalog=Jetco_C_TRACK;Persist Security Info=True;User ID=steamware;Password=viadante16;",
"MapoDb.Properties.Settings.MoonPro_ES3ConnectionString": "Data Source=localhost\\sqlexpress;Initial Catalog=Jetco_MoonPro_ES3;Persist Security Info=True;User ID=steamware;Password=viadante16;",
"ErrorLog": "Data Source=localhost\\sqlexpress;Initial Catalog=Elmah;Persist Security Info=True;User ID=steamware;Password=viadante16;",
"AppData.Properties.Settings.C_TRACKConnectionString": "Data Source=localhost\\SQLEXPRESS;Initial Catalog=Jetco_C_TRACK;Persist Security Info=True;User ID=steamware;Password=viadante16;",
"MoonProEntities": "metadata=res://*/Models.MPModel.csdl|res://*/Models.MPModel.ssdl|res://*/Models.MPModel.msl;provider=System.Data.SqlClient;provider connection string=\"data source=localhost\\SQLEXPRESS;initial catalog=Jetco_MoonPro;persist security info=True;user id=steamware;password=viadante16;multipleactiveresultsets=True;application name=EntityFramework\"",
"MagData.Properties.Settings.MoonPro_MAGConnectionString": "Data Source=localhost\\SQLEXPRESS;Initial Catalog=Jetco_MoonPro_MAG;Persist Security Info=True;User ID=steamware;Password=viadante16;",
"MapoMonEntities": "metadata=res://*/Models.MapoModel.csdl|res://*/Models.MapoModel.ssdl|res://*/Models.MapoModel.msl;provider=System.Data.SqlClient;provider connection string=\"data source=localhost\\SQLEXPRESS;initial catalog=Jetco_MoonPro;persist security info=True;user id=steamware;password=viadante16;multipleactiveresultsets=True;application name=EntityFramework\"",
"SteamWare.Properties.Settings.DbConfConnectionString": "Data Source=localhost\\sqlexpress;Initial Catalog=Jetco_MoonPro;Persist Security Info=True;User ID=steamware;Password=viadante16;"
},
"jsonConnStrRules": {
"DefaultConnection": "Server=localhost\\SQLEXPRESS;Database=Jetco_MoonPro;Trusted_Connection=True;MultipleActiveResultSets=true",
"MP.Stats": "Server=localhost\\SQLEXPRESS;Database=Jetco_MoonPro_STATS;User ID=steamware;Password=viadante16;integrated security=False;MultipleActiveResultSets=True;App=MP.STATS;",
"MP.Prog": "Server=localhost\\SQLEXPRESS;Database=Jetco_MoonPro_PROG;User ID=steamware;Password=viadante16;integrated security=False;MultipleActiveResultSets=True;App=MP.Prog;",
"MP.Land": "Server=localhost\\SQLEXPRESS;Database=Jetco_MoonPro;User ID=steamware;Password=viadante16;integrated security=False;MultipleActiveResultSets=True;App=MP.Land;",
"MP.Mon": "Server=localhost\\SQLEXPRESS;Database=Jetco_MoonPro;User ID=steamware;Password=viadante16;integrated security=False;MultipleActiveResultSets=True;App=MP.Mon;",
"MP.Tab": "Server=localhost\\SQLEXPRESS;Database=Jetco_MoonPro; User ID=steamware;Password=viadante16; integrated security=False; MultipleActiveResultSets=True; App=MP.TAB3;",
"MP.Data": "Server=localhost\\SQLEXPRESS;Database=Jetco_MoonPro; User ID=steamware;Password=viadante16; integrated security=False; MultipleActiveResultSets=True; App=MP.Spec;",
"MP.Inve": "Server=localhost\\SQLEXPRESS;Database=Jetco_MoonPro_MAG; User ID=steamware;Password=viadante16; integrated security=False; MultipleActiveResultSets=True; App=MP.INVE;",
"MP.IS": "Server=localhost\\SQLEXPRESS;Database=Jetco_MoonPro_IS; User ID=steamware;Password=viadante16; integrated security=False; MultipleActiveResultSets=True; App=MP.INVE;",
"MP.All": "Server=localhost\\SQLEXPRESS;Database=Jetco_MoonPro; User ID=steamware; Password=viadante16; integrated security=False; MultipleActiveResultSets=True; App=MP.All;",
"MP.Mag": "Server=localhost\\SQLEXPRESS;Database=Jetco_MoonPro_MAG; User ID=steamware;Password=viadante16; integrated security=False; MultipleActiveResultSets=True; App=MP.Mag;",
"BaseUrl": "https://maposrv.egalware.com/",
"downloadPath": "C:\\Steamware\\installers\\MP",
"Redis": "localhost:6379,DefaultDatabase=1,connectTimeout=5000,syncTimeout=5000,asyncTimeout=5000,abortConnect=false,ssl=false",
"RedisAdmin": "localhost:6379,DefaultDatabase=1,connectTimeout=5000,syncTimeout=5000,asyncTimeout=5000,abortConnect=false,ssl=false,allowAdmin=true",
"maxAge": "2000",
"cacheCheckArtUsato": 2,
"redisLongTimeCache": 15,
"MpIoBaseUrl": "http://localhost/MP/IO/",
"BaseUrlJumper": "http://maposrv.egalware.com/mp/inve/Jumper?"
}
}
+2 -1
View File
@@ -5,7 +5,8 @@ namespace WebConfigSetter
public enum operationMode
{
readConf = 0,
writeConf
writeConf,
reorgConf
}
public class jsonAppConfig
+85 -18
View File
@@ -2,6 +2,7 @@
using Newtonsoft.Json.Linq;
using System;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Xml;
@@ -22,9 +23,10 @@ namespace WebConfigSetter
#region Protected Properties
protected static string baseDir { get; set; } = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);//@"c:\Steamware\WebConfigSetter";
//@"c:\Steamware\WebConfigSetter";
protected static string baseDir { get; set; } = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
#if DEBUG
protected static string baseWebAppDir { get; set; } = @"\\iis02\c$\inetpub\wwwroot\MP\";
protected static string baseWebAppDir { get; set; } = @"\\iis01\c$\inetpub\wwwroot\MP\";
#else
protected static string baseWebAppDir { get; set; } = @"c:\inetpub\wwwroot\MP\";
@@ -34,7 +36,7 @@ namespace WebConfigSetter
protected static string currentSetFile { get; set; } = $@"{confDir}\default.json";
/// <summary>
/// modalità scrittura (altrimenti legge e carica conf parsando i files)
/// Modalità operativa: lettura/scrittura/riorg file conf
/// </summary>
protected static operationMode opMode { get; set; } = operationMode.readConf;
@@ -56,7 +58,7 @@ namespace WebConfigSetter
Console.WriteLine(separatore);
Console.WriteLine("");
Console.WriteLine("Sintassi: WebConfigSetter.exe $1 $2 $3");
Console.WriteLine("$1: Modalità operativa (0=read, 1=write)");
Console.WriteLine("$1: Modalità operativa (0=read [default], 1=write, 2=riorganizzazione)");
Console.WriteLine("$2: WebApp directory di base");
Console.WriteLine("$3: SetName da applicare");
Console.WriteLine(separatore);
@@ -67,16 +69,13 @@ namespace WebConfigSetter
// carico parametri opzionali
if (args.Length > 0)
{
opMode = args[0] == "1" ? operationMode.writeConf : operationMode.readConf;
setOpMode(args[0]);
}
else
{
Console.WriteLine($"Modalità operativa 0=read, 1=write [{opMode}]");
Console.WriteLine($"Modalità operativa 0=read [default], 1=write, 2=riorganizzazione [{opMode}]");
userInput = Console.ReadLine();
if (!string.IsNullOrEmpty(userInput))
{
opMode = userInput == "1" ? operationMode.writeConf : operationMode.readConf;
}
setOpMode(userInput);
}
if (args.Length > 1)
{
@@ -119,20 +118,48 @@ namespace WebConfigSetter
Console.WriteLine(separatore);
}
/// <summary>
/// impostazione modalità operativa da parametro
/// </summary>
/// <param name="currOpt"></param>
private static void setOpMode(string currOpt)
{
switch (currOpt)
{
case "0":
opMode = operationMode.readConf;
break;
case "1":
opMode = operationMode.writeConf;
break;
case "2":
opMode = operationMode.reorgConf;
break;
default:
opMode = operationMode.readConf;
break;
}
}
/// <summary>
/// Esecuzione richiesta principale
/// </summary>
private static void processRequest()
{
// caso 1: acquisisco conf
if (opMode == operationMode.readConf)
switch (opMode)
{
readConfToFiles();
}
// caso 2: effettuo sostituzioni
else
{
writeConfToFiles();
case operationMode.readConf:
readConfToFiles();
break;
case operationMode.writeConf:
writeConfToFiles();
break;
case operationMode.reorgConf:
reorgConfFile();
break;
default:
readConfToFiles();
break;
}
}
@@ -234,6 +261,11 @@ namespace WebConfigSetter
}
}
// STEP 3: riordino blocchi configurazione
currConfig.appSettRules = currConfig.appSettRules.OrderBy(x => x.Key).ToDictionary(x => x.Key, x => x.Value);
currConfig.connStrRules = currConfig.connStrRules.OrderBy(x => x.Key).ToDictionary(x => x.Key, x => x.Value);
currConfig.jsonConnStrRules = currConfig.jsonConnStrRules.OrderBy(x => x.Key).ToDictionary(x => x.Key, x => x.Value);
// serializzo!
string rawData = JsonConvert.SerializeObject(currConfig, Newtonsoft.Json.Formatting.Indented);
@@ -365,6 +397,41 @@ namespace WebConfigSetter
}
}
private static void reorgConfFile()
{
// check file exists...
if (File.Exists(currentSetFile))
{
// leggo il file delle configurazioni da applicare...
string rawData = File.ReadAllText(currentSetFile);
if (!string.IsNullOrEmpty(rawData))
{
// leggo conf
currConfig = JsonConvert.DeserializeObject<SetCliente>(rawData);
// riordino blocchi configurazione
currConfig.appSettRules = currConfig.appSettRules.OrderBy(x => x.Key).ToDictionary(x => x.Key, x => x.Value);
currConfig.connStrRules = currConfig.connStrRules.OrderBy(x => x.Key).ToDictionary(x => x.Key, x => x.Value);
currConfig.jsonConnStrRules = currConfig.jsonConnStrRules.OrderBy(x => x.Key).ToDictionary(x => x.Key, x => x.Value);
// salvo: serializzo!
rawData = JsonConvert.SerializeObject(currConfig, Newtonsoft.Json.Formatting.Indented);
// salvo il file di conf!
File.WriteAllText(currentSetFile, rawData);
}
else
{
Console.WriteLine($"Errore: file conf vuoto: {currentSetFile}");
}
}
else
{
Console.WriteLine($"Errore: file conf non trovato: {currentSetFile}");
}
}
#endregion Private Methods
}
}
+3
View File
@@ -24,6 +24,9 @@
<None Update="CONF\ColCom.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="CONF\ConfigDB.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="CONF\default.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>