From 7176c245d666b5b080b903969104a7c2f35f3aaa Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Mon, 14 Dec 2020 11:27:40 +0100 Subject: [PATCH] continuo sviluppo... --- WebConfigSetter/CONF/ColCom.json | 25 ++++++ WebConfigSetter/CONF/default.json | 25 ++++++ WebConfigSetter/Objects.cs | 6 -- WebConfigSetter/Program.cs | 136 +++++++++++++++++++++--------- 4 files changed, 144 insertions(+), 48 deletions(-) create mode 100644 WebConfigSetter/CONF/ColCom.json create mode 100644 WebConfigSetter/CONF/default.json diff --git a/WebConfigSetter/CONF/ColCom.json b/WebConfigSetter/CONF/ColCom.json new file mode 100644 index 00000000..00579ec6 --- /dev/null +++ b/WebConfigSetter/CONF/ColCom.json @@ -0,0 +1,25 @@ +{ + "appSettRules": { + "DbConfConnectionString": "Data Source=SQL2016PROD;Initial Catalog=ColCom_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MoonProConnectionString": "Data Source=SQL2016PROD;Initial Catalog=ColCom_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MoonProConnectionStringIS": "Data Source=SQL2016PROD;Initial Catalog=ColCom_MoonPro_IS_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MoonProConnectionStringES3": "Data Source=SQL2016PROD;Initial Catalog=ColCom_MoonPro_ES3_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "PermessiConnectionString": "Data Source=SQL2016PROD;Initial Catalog=ColCom_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "UtenteCdcConnectionString": "Data Source=SQL2016PROD;Initial Catalog=ColCom_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "VocabolarioConnectionString": "Data Source=SQL2016PROD;Initial Catalog=ColCom_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "DevicesConnectionString": "Data Source=SQL2016PROD;Initial Catalog=ColCom_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "DevicesAuthConnectionString": "Data Source=SQL2016PROD;Initial Catalog=ColCom_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MoonProConnectionStringArca": "Data Source=SQL2016PROD;Initial Catalog=ColCom_MoonPro_IS_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MoonProConnectionStringMAG": "Data Source=SQL2016PROD;Initial Catalog=ColCom_MoonPro_MAG_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;" + }, + "connStrRules": { + "MoonProConnectionString": "Data Source=SQL2016PROD;Initial Catalog=ColCom_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MapoDb.Properties.Settings.MoonProConnectionString": "Data Source=SQL2016PROD;Initial Catalog=ColCom_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MapoDb.Properties.Settings.MoonPro_IS_ConnectionString": "Data Source=SQL2016PROD;Initial Catalog=ColCom_MoonPro_IS_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MapoDb.Properties.Settings.C_TRACKConnectionString": "Data Source=SQL2016DEV;Initial Catalog=ColCom_C_TRACK_prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MapoDb.Properties.Settings.MoonPro_ES3ConnectionString": "Data Source=SQL2016PROD;Initial Catalog=ColCom_MoonPro_ES3_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16", + "ErrorLog": "Data Source=SQL2016PROD;Initial Catalog=Elmah;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MoonProEntities": "metadata=res://*/Models.MPModel.csdl|res://*/Models.MPModel.ssdl|res://*/Models.MPModel.msl;provider=System.Data.SqlClient;provider connection string=\"data source=SQL2016PROD;initial Catalog=ColCom_MoonPro_Prod;persist security info=True;user id=sa;password=keyhammer16;multipleactiveresultsets=True;application name=EntityFramework\"", + "SteamWare.Properties.Settings.DbConfConnectionString": "Data Source=SQL2016PROD;Initial Catalog=ColCom_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;" + } +} \ No newline at end of file diff --git a/WebConfigSetter/CONF/default.json b/WebConfigSetter/CONF/default.json new file mode 100644 index 00000000..5dcb2da4 --- /dev/null +++ b/WebConfigSetter/CONF/default.json @@ -0,0 +1,25 @@ +{ + "appSettRules": { + "DbConfConnectionString": "Data Source=SQL2016DEV;Initial Catalog=MoonPro;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MoonProConnectionString": "Data Source=SQL2016DEV;Initial Catalog=MoonPro;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MoonProConnectionStringIS": "Data Source=SQL2016DEV;Initial Catalog=MoonPro_IS_Jetco;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MoonProConnectionStringES3": "Data Source=SQL2016DEV;Initial Catalog=MoonPro_ES3;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "PermessiConnectionString": "Data Source=SQL2016DEV;Initial Catalog=MoonPro;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "UtenteCdcConnectionString": "Data Source=SQL2016DEV;Initial Catalog=MoonPro_Anagrafica;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "VocabolarioConnectionString": "Data Source=SQL2016DEV;Initial Catalog=MoonPro;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "DevicesConnectionString": "Data Source=SQL2016DEV;Initial Catalog=Donati_Anagrafica;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "DevicesAuthConnectionString": "Data Source=SQL2016DEV;Initial Catalog=MoonPro;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MoonProConnectionStringArca": "Data Source=SQL2016DEV;Initial Catalog=MoonPro_IS_EdilChim;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MoonProConnectionStringMAG": "Data Source=SQL2016DEV;Initial Catalog=MoonPro_MAG;Persist Security Info=True;User ID=sa;Password=keyhammer16;" + }, + "connStrRules": { + "MoonProConnectionString": "Data Source=SQL2016DEV;Initial Catalog=MoonPro;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MapoDb.Properties.Settings.MoonProConnectionString": "Data Source=SQL2016DEV;Initial Catalog=MoonPro;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MapoDb.Properties.Settings.MoonPro_IS_ConnectionString": "Data Source=SQL2016DEV;Initial Catalog=MoonPro_IS_ColCom;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MapoDb.Properties.Settings.C_TRACKConnectionString": "Data Source=SQL2016DEV;Initial Catalog=C_TRACK;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MapoDb.Properties.Settings.MoonPro_ES3ConnectionString": "Data Source=sql2016dev;Initial Catalog=MoonPro_ES3;Persist Security Info=True;User ID=sa;Password=keyhammer16", + "ErrorLog": "Data Source=SQL2016DEV;Initial Catalog=Elmah;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MoonProEntities": "metadata=res://*/Models.MPModel.csdl|res://*/Models.MPModel.ssdl|res://*/Models.MPModel.msl;provider=System.Data.SqlClient;provider connection string=\"data source=SQL2016DEV;initial catalog=MoonPro;persist security info=True;user id=sa;password=keyhammer16;multipleactiveresultsets=True;application name=EntityFramework\"", + "SteamWare.Properties.Settings.DbConfConnectionString": "Data Source=SQL2016DEV;Initial Catalog=MoonPro;Persist Security Info=True;User ID=sa;Password=keyhammer16;" + } +} \ No newline at end of file diff --git a/WebConfigSetter/Objects.cs b/WebConfigSetter/Objects.cs index c7a3334f..143e56de 100644 --- a/WebConfigSetter/Objects.cs +++ b/WebConfigSetter/Objects.cs @@ -18,11 +18,5 @@ namespace WebConfigSetter public Dictionary connStrRules = new Dictionary(); #endregion Public Fields - - #region Public Properties - - public string Cliente { get; set; } = "Steamware"; - - #endregion Public Properties } } \ No newline at end of file diff --git a/WebConfigSetter/Program.cs b/WebConfigSetter/Program.cs index 15c66aae..83ee5e38 100644 --- a/WebConfigSetter/Program.cs +++ b/WebConfigSetter/Program.cs @@ -101,7 +101,6 @@ namespace WebConfigSetter Console.WriteLine($"setName: {setName}"); // salvo info... - currConfig.Cliente = setName; currentSetFile = $"{confDir}\\{setName}.json"; // processo richiesta @@ -120,54 +119,107 @@ namespace WebConfigSetter // caso 1: acquisisco conf if (opMode == operationMode.readConf) { - // cerca i file we.config dalla folder richiesta in giù... - string[] configFiles = Directory.GetFiles(baseWebAppDir, "web.config", SearchOption.AllDirectories); - XmlDocument doc = new XmlDocument(); - - foreach (var item in configFiles) - { - Console.WriteLine($"Found: {item}"); - - doc = new XmlDocument(); - doc.Load(item); - - // cerco in appConfig - XmlNodeList appSettingsList = doc.SelectNodes("configuration/appSettings/*"); - - for (int i = 0; i < appSettingsList.Count; i++) - { - if (appSettingsList[i].Attributes["key"].Value.Contains("ConnectionString")) - { - if (!currConfig.appSettRules.ContainsKey(appSettingsList[i].Attributes["key"].Value)) - { - currConfig.appSettRules.Add(appSettingsList[i].Attributes["key"].Value, appSettingsList[i].Attributes["value"].Value); - } - } - } - // cerco in connectionStrings - XmlNodeList connectionStringsList = doc.SelectNodes("configuration/connectionStrings/*"); - - for (int i = 0; i < connectionStringsList.Count; i++) - { - if (!currConfig.connStrRules.ContainsKey(connectionStringsList[i].Attributes["name"].Value)) - { - currConfig.connStrRules.Add(connectionStringsList[i].Attributes["name"].Value, connectionStringsList[i].Attributes["connectionString"].Value); - } - } - } - - // serializzo! - string rawData = JsonConvert.SerializeObject(currConfig, Newtonsoft.Json.Formatting.Indented); - - // salvo il file di conf! - File.WriteAllText(currentSetFile, rawData); + readConfToFiles(); } // caso 2: effettuo sostituzioni else { + writeConfToFiles(); } } + private static void readConfToFiles() + { + // cerca i file we.config dalla folder richiesta in giù... + string[] configFiles = Directory.GetFiles(baseWebAppDir, "web.config", SearchOption.AllDirectories); + XmlDocument doc = new XmlDocument(); + + foreach (var item in configFiles) + { + Console.WriteLine($"Found: {item}"); + + doc = new XmlDocument(); + doc.Load(item); + + // cerco in appConfig + XmlNodeList appSettingsList = doc.SelectNodes("configuration/appSettings/*"); + + for (int i = 0; i < appSettingsList.Count; i++) + { + if (appSettingsList[i].Attributes["key"].Value.Contains("ConnectionString")) + { + if (!currConfig.appSettRules.ContainsKey(appSettingsList[i].Attributes["key"].Value)) + { + currConfig.appSettRules.Add(appSettingsList[i].Attributes["key"].Value, appSettingsList[i].Attributes["value"].Value); + } + } + } + // cerco in connectionStrings + XmlNodeList connectionStringsList = doc.SelectNodes("configuration/connectionStrings/*"); + + for (int i = 0; i < connectionStringsList.Count; i++) + { + if (!currConfig.connStrRules.ContainsKey(connectionStringsList[i].Attributes["name"].Value)) + { + currConfig.connStrRules.Add(connectionStringsList[i].Attributes["name"].Value, connectionStringsList[i].Attributes["connectionString"].Value); + } + } + } + + // serializzo! + string rawData = JsonConvert.SerializeObject(currConfig, Newtonsoft.Json.Formatting.Indented); + + // salvo il file di conf! + File.WriteAllText(currentSetFile, rawData); + } + + private static void writeConfToFiles() + { + // cerca i file we.config dalla folder richiesta in giù... + string[] configFiles = Directory.GetFiles(baseWebAppDir, "web.config", SearchOption.AllDirectories); + XmlDocument doc = new XmlDocument(); + + foreach (var item in configFiles) + { + Console.WriteLine($"Found: {item}"); + + doc = new XmlDocument(); + doc.Load(item); + + // cerco in appConfig + XmlNodeList appSettingsList = doc.SelectNodes("configuration/appSettings/*"); + + for (int i = 0; i < appSettingsList.Count; i++) + { + if (appSettingsList[i].Attributes["key"].Value.Contains("ConnectionString")) + { + // effettuo sostituzione + + if (!currConfig.appSettRules.ContainsKey(appSettingsList[i].Attributes["key"].Value)) + { + currConfig.appSettRules.Add(appSettingsList[i].Attributes["key"].Value, appSettingsList[i].Attributes["value"].Value); + } + } + } + // cerco in connectionStrings + XmlNodeList connectionStringsList = doc.SelectNodes("configuration/connectionStrings/*"); + + for (int i = 0; i < connectionStringsList.Count; i++) + { + if (!currConfig.connStrRules.ContainsKey(connectionStringsList[i].Attributes["name"].Value)) + { + currConfig.connStrRules.Add(connectionStringsList[i].Attributes["name"].Value, connectionStringsList[i].Attributes["connectionString"].Value); + } + } + } + + // serializzo! + string rawData = JsonConvert.SerializeObject(currConfig, Newtonsoft.Json.Formatting.Indented); + + // salvo il file di conf! + File.WriteAllText(currentSetFile, rawData); + } + #endregion Private Methods } } \ No newline at end of file