From 8786864cc094aaf9d5b7b3dea88df127f152141f Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Fri, 11 Dec 2020 17:40:12 +0100 Subject: [PATCH 1/5] Bozza gestione lettura conf --- MAPO.sln | 18 +++ WebConfigSetter/CONF/PlaceHolder.file | 1 + WebConfigSetter/Objects.cs | 28 ++++ WebConfigSetter/Program.cs | 173 +++++++++++++++++++++++++ WebConfigSetter/WebConfigSetter.csproj | 21 +++ 5 files changed, 241 insertions(+) create mode 100644 WebConfigSetter/CONF/PlaceHolder.file create mode 100644 WebConfigSetter/Objects.cs create mode 100644 WebConfigSetter/Program.cs create mode 100644 WebConfigSetter/WebConfigSetter.csproj diff --git a/MAPO.sln b/MAPO.sln index 746fb20f..0361c2d8 100644 --- a/MAPO.sln +++ b/MAPO.sln @@ -27,6 +27,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MP-SITE", "MP-SITE\MP-SITE. EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MapoSDK", "MapoSDK\MapoSDK.csproj", "{D07211B6-CF67-4C7F-8040-5B8C3B12BB4B}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebConfigSetter", "WebConfigSetter\WebConfigSetter.csproj", "{58E9A6EB-C1E7-4C0F-B497-C0DE02D7B950}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -183,6 +185,22 @@ Global {D07211B6-CF67-4C7F-8040-5B8C3B12BB4B}.Prod|Any CPU.Build.0 = Release|Any CPU {D07211B6-CF67-4C7F-8040-5B8C3B12BB4B}.Release|Any CPU.ActiveCfg = Release|Any CPU {D07211B6-CF67-4C7F-8040-5B8C3B12BB4B}.Release|Any CPU.Build.0 = Release|Any CPU + {58E9A6EB-C1E7-4C0F-B497-C0DE02D7B950}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {58E9A6EB-C1E7-4C0F-B497-C0DE02D7B950}.Debug|Any CPU.Build.0 = Debug|Any CPU + {58E9A6EB-C1E7-4C0F-B497-C0DE02D7B950}.Donati|Any CPU.ActiveCfg = Debug|Any CPU + {58E9A6EB-C1E7-4C0F-B497-C0DE02D7B950}.Donati|Any CPU.Build.0 = Debug|Any CPU + {58E9A6EB-C1E7-4C0F-B497-C0DE02D7B950}.IIS01|Any CPU.ActiveCfg = Debug|Any CPU + {58E9A6EB-C1E7-4C0F-B497-C0DE02D7B950}.IIS01|Any CPU.Build.0 = Debug|Any CPU + {58E9A6EB-C1E7-4C0F-B497-C0DE02D7B950}.IIS02|Any CPU.ActiveCfg = Debug|Any CPU + {58E9A6EB-C1E7-4C0F-B497-C0DE02D7B950}.IIS02|Any CPU.Build.0 = Debug|Any CPU + {58E9A6EB-C1E7-4C0F-B497-C0DE02D7B950}.Jetco|Any CPU.ActiveCfg = Debug|Any CPU + {58E9A6EB-C1E7-4C0F-B497-C0DE02D7B950}.Jetco|Any CPU.Build.0 = Debug|Any CPU + {58E9A6EB-C1E7-4C0F-B497-C0DE02D7B950}.OVH-Demo|Any CPU.ActiveCfg = Debug|Any CPU + {58E9A6EB-C1E7-4C0F-B497-C0DE02D7B950}.OVH-Demo|Any CPU.Build.0 = Debug|Any CPU + {58E9A6EB-C1E7-4C0F-B497-C0DE02D7B950}.Prod|Any CPU.ActiveCfg = Debug|Any CPU + {58E9A6EB-C1E7-4C0F-B497-C0DE02D7B950}.Prod|Any CPU.Build.0 = Debug|Any CPU + {58E9A6EB-C1E7-4C0F-B497-C0DE02D7B950}.Release|Any CPU.ActiveCfg = Release|Any CPU + {58E9A6EB-C1E7-4C0F-B497-C0DE02D7B950}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/WebConfigSetter/CONF/PlaceHolder.file b/WebConfigSetter/CONF/PlaceHolder.file new file mode 100644 index 00000000..5f282702 --- /dev/null +++ b/WebConfigSetter/CONF/PlaceHolder.file @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/WebConfigSetter/Objects.cs b/WebConfigSetter/Objects.cs new file mode 100644 index 00000000..c7a3334f --- /dev/null +++ b/WebConfigSetter/Objects.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace WebConfigSetter +{ + public enum operationMode + { + readConf = 0, + writeConf + } + + public class SetCliente + { + #region Public Fields + + public Dictionary appSettRules = new Dictionary(); + 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 new file mode 100644 index 00000000..15c66aae --- /dev/null +++ b/WebConfigSetter/Program.cs @@ -0,0 +1,173 @@ +using Newtonsoft.Json; +using System; +using System.IO; +using System.Xml; + +namespace WebConfigSetter +{ + internal class Program + { + #region Protected Fields + + protected const string separatore = "---------------------------------------------------------------------------------------"; + + /// + /// stringa di setup cliente + /// + protected static SetCliente currConfig = new SetCliente(); + + #endregion Protected Fields + + #region Protected Properties + + protected static string baseDir { get; set; } = $"{Environment.CurrentDirectory}"; + protected static string baseWebAppDir { get; set; } = @"\\iis02\c$\inetpub\wwwroot\MP\"; + protected static string confDir { get; set; } = $"{baseDir}\\CONF"; + + protected static string currentSetFile { get; set; } = $"{confDir}\\default.json"; + protected static string globalConfFile { get; set; } = $"{confDir}\\settings.json"; + + /// + /// modalità scrittura (altrimenti legge e carica conf parsando i files) + /// + protected static operationMode opMode { get; set; } = operationMode.readConf; + + protected static string setName { get; set; } = "Steamware"; + + #endregion Protected Properties + + #region Private Methods + + private static void Main(string[] args) + { + //Console.WriteLine($"Base dir: {baseDir}"); + //Console.WriteLine($"Conf dir: {confDir}"); + //Console.WriteLine($"Set file: {setFile}"); + + if (args == null || args.Length == 0) + { + Console.WriteLine(separatore); + Console.WriteLine("Sintassi: WebConfigSetter.exe $1 $2 $3"); + Console.WriteLine("$1: Modalità operativa (0=read, 1=write)"); + Console.WriteLine("$2: WebApp directory di base"); + Console.WriteLine("$3: SetName da applicare"); + Console.WriteLine(separatore); + Console.WriteLine(""); + Console.WriteLine("Nessuna parametro fornito, verranno ora richiesti i parametri"); + Console.WriteLine(separatore); + + // chiedo tutti i dati... + string userInput = ""; + Console.WriteLine($"Modalità operativa 0=read, 1=write [{opMode}]"); + userInput = Console.ReadLine(); + if (!string.IsNullOrEmpty(userInput)) + { + opMode = userInput == "1" ? operationMode.writeConf : operationMode.readConf; + } + Console.WriteLine($"WebApp directory di base [{baseWebAppDir}]"); + userInput = Console.ReadLine(); + if (!string.IsNullOrEmpty(userInput)) + { + baseWebAppDir = userInput; + } + Console.WriteLine($"SetName da applicare [{setName}]"); + userInput = Console.ReadLine(); + if (!string.IsNullOrEmpty(userInput)) + { + baseWebAppDir = userInput; + } + } + else + { + // carico parametri opzionali + + if (args.Length > 0) + { + baseWebAppDir = args[0]; + } + if (args.Length > 1) + { + baseWebAppDir = args[1]; + } + if (args.Length > 2) + { + setName = args[2]; + } + } + + Console.WriteLine(separatore); + Console.WriteLine($"Modalità operativa: {opMode}"); + Console.WriteLine($"baseWebAppDir: {baseWebAppDir}"); + Console.WriteLine($"setName: {setName}"); + + // salvo info... + currConfig.Cliente = setName; + currentSetFile = $"{confDir}\\{setName}.json"; + + // processo richiesta + processRequest(); + + Console.WriteLine(separatore); + Console.Write("Premere un tasto x uscire"); + Console.ReadLine(); + } + + /// + /// Esecuzione richiesta principale + /// + private static void processRequest() + { + // 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); + } + // caso 2: effettuo sostituzioni + else + { + } + } + + #endregion Private Methods + } +} \ No newline at end of file diff --git a/WebConfigSetter/WebConfigSetter.csproj b/WebConfigSetter/WebConfigSetter.csproj new file mode 100644 index 00000000..c7f13013 --- /dev/null +++ b/WebConfigSetter/WebConfigSetter.csproj @@ -0,0 +1,21 @@ + + + + Exe + net5.0 + + + + + + + + + Always + + + + + + + \ No newline at end of file From 7166d298293d10392ff82813ffa481e00ecba5c7 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Mon, 14 Dec 2020 11:27:34 +0100 Subject: [PATCH 2/5] Aggiunte conf varie --- WebConfigSetter/CONF/Donati.json | 25 +++++++++++++++++++++++++ WebConfigSetter/CONF/Edilchimica.json | 25 +++++++++++++++++++++++++ WebConfigSetter/CONF/Jetco.json | 25 +++++++++++++++++++++++++ WebConfigSetter/CONF/LVF.json | 25 +++++++++++++++++++++++++ WebConfigSetter/CONF/Steamware.json | 25 +++++++++++++++++++++++++ 5 files changed, 125 insertions(+) create mode 100644 WebConfigSetter/CONF/Donati.json create mode 100644 WebConfigSetter/CONF/Edilchimica.json create mode 100644 WebConfigSetter/CONF/Jetco.json create mode 100644 WebConfigSetter/CONF/LVF.json create mode 100644 WebConfigSetter/CONF/Steamware.json diff --git a/WebConfigSetter/CONF/Donati.json b/WebConfigSetter/CONF/Donati.json new file mode 100644 index 00000000..2bd32874 --- /dev/null +++ b/WebConfigSetter/CONF/Donati.json @@ -0,0 +1,25 @@ +{ + "appSettRules": { + "DbConfConnectionString": "Data Source=SQL2016PROD;Initial Catalog=Donati_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MoonProConnectionString": "Data Source=SQL2016PROD;Initial Catalog=Donati_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MoonProConnectionStringIS": "Data Source=SQL2016PROD;Initial Catalog=Donati_MoonPro_IS_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MoonProConnectionStringES3": "Data Source=SQL2016PROD;Initial Catalog=Donati_MoonPro_ES3_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "PermessiConnectionString": "Data Source=SQL2016PROD;Initial Catalog=Donati_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "UtenteCdcConnectionString": "Data Source=SQL2016PROD;Initial Catalog=Donati_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "VocabolarioConnectionString": "Data Source=SQL2016PROD;Initial Catalog=Donati_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "DevicesConnectionString": "Data Source=SQL2016PROD;Initial Catalog=Donati_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "DevicesAuthConnectionString": "Data Source=SQL2016PROD;Initial Catalog=Donati_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MoonProConnectionStringArca": "Data Source=SQL2016PROD;Initial Catalog=Donati_MoonPro_IS_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MoonProConnectionStringMAG": "Data Source=SQL2016PROD;Initial Catalog=Donati_MoonPro_MAG_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;" + }, + "connStrRules": { + "MoonProConnectionString": "Data Source=SQL2016PROD;Initial Catalog=Donati_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MapoDb.Properties.Settings.MoonProConnectionString": "Data Source=SQL2016PROD;Initial Catalog=Donati_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MapoDb.Properties.Settings.MoonPro_IS_ConnectionString": "Data Source=SQL2016PROD;Initial Catalog=Donati_MoonPro_IS_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MapoDb.Properties.Settings.C_TRACKConnectionString": "Data Source=SQL2016DEV;Initial Catalog=Donati_C_TRACK_prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MapoDb.Properties.Settings.MoonPro_ES3ConnectionString": "Data Source=SQL2016PROD;Initial Catalog=Donati_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=Donati_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=Donati_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;" + } +} \ No newline at end of file diff --git a/WebConfigSetter/CONF/Edilchimica.json b/WebConfigSetter/CONF/Edilchimica.json new file mode 100644 index 00000000..363f0d3e --- /dev/null +++ b/WebConfigSetter/CONF/Edilchimica.json @@ -0,0 +1,25 @@ +{ + "appSettRules": { + "DbConfConnectionString": "Data Source=SQL2016PROD;Initial Catalog=EdilChim_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MoonProConnectionString": "Data Source=SQL2016PROD;Initial Catalog=EdilChim_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MoonProConnectionStringIS": "Data Source=SQL2016PROD;Initial Catalog=EdilChim_MoonPro_IS_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MoonProConnectionStringES3": "Data Source=SQL2016PROD;Initial Catalog=EdilChim_MoonPro_ES3_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "PermessiConnectionString": "Data Source=SQL2016PROD;Initial Catalog=EdilChim_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "UtenteCdcConnectionString": "Data Source=SQL2016PROD;Initial Catalog=EdilChim_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "VocabolarioConnectionString": "Data Source=SQL2016PROD;Initial Catalog=EdilChim_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "DevicesConnectionString": "Data Source=SQL2016PROD;Initial Catalog=EdilChim_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "DevicesAuthConnectionString": "Data Source=SQL2016PROD;Initial Catalog=EdilChim_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MoonProConnectionStringArca": "Data Source=SQL2016PROD;Initial Catalog=EdilChim_MoonPro_IS_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MoonProConnectionStringMAG": "Data Source=SQL2016PROD;Initial Catalog=EdilChim_MoonPro_MAG_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;" + }, + "connStrRules": { + "MoonProConnectionString": "Data Source=SQL2016PROD;Initial Catalog=EdilChim_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MapoDb.Properties.Settings.MoonProConnectionString": "Data Source=SQL2016PROD;Initial Catalog=EdilChim_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MapoDb.Properties.Settings.MoonPro_IS_ConnectionString": "Data Source=SQL2016PROD;Initial Catalog=EdilChim_MoonPro_IS_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MapoDb.Properties.Settings.C_TRACKConnectionString": "Data Source=SQL2016DEV;Initial Catalog=EdilChim_C_TRACK_prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MapoDb.Properties.Settings.MoonPro_ES3ConnectionString": "Data Source=SQL2016PROD;Initial Catalog=EdilChim_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=EdilChim_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=EdilChim_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;" + } +} \ No newline at end of file diff --git a/WebConfigSetter/CONF/Jetco.json b/WebConfigSetter/CONF/Jetco.json new file mode 100644 index 00000000..e858d578 --- /dev/null +++ b/WebConfigSetter/CONF/Jetco.json @@ -0,0 +1,25 @@ +{ + "appSettRules": { + "DbConfConnectionString": "Data Source=SQL2016PROD;Initial Catalog=Jetco_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MoonProConnectionString": "Data Source=SQL2016PROD;Initial Catalog=Jetco_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MoonProConnectionStringIS": "Data Source=SQL2016PROD;Initial Catalog=Jetco_MoonPro_IS_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MoonProConnectionStringES3": "Data Source=SQL2016PROD;Initial Catalog=Jetco_MoonPro_ES3_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "PermessiConnectionString": "Data Source=SQL2016PROD;Initial Catalog=Jetco_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "UtenteCdcConnectionString": "Data Source=SQL2016PROD;Initial Catalog=Jetco_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "VocabolarioConnectionString": "Data Source=SQL2016PROD;Initial Catalog=Jetco_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "DevicesConnectionString": "Data Source=SQL2016PROD;Initial Catalog=Jetco_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "DevicesAuthConnectionString": "Data Source=SQL2016PROD;Initial Catalog=Jetco_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MoonProConnectionStringArca": "Data Source=SQL2016PROD;Initial Catalog=Jetco_MoonPro_IS_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MoonProConnectionStringMAG": "Data Source=SQL2016PROD;Initial Catalog=Jetco_MoonPro_MAG_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;" + }, + "connStrRules": { + "MoonProConnectionString": "Data Source=SQL2016PROD;Initial Catalog=Jetco_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MapoDb.Properties.Settings.MoonProConnectionString": "Data Source=SQL2016PROD;Initial Catalog=Jetco_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MapoDb.Properties.Settings.MoonPro_IS_ConnectionString": "Data Source=SQL2016PROD;Initial Catalog=Jetco_MoonPro_IS_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MapoDb.Properties.Settings.C_TRACKConnectionString": "Data Source=SQL2016DEV;Initial Catalog=Jetco_C_TRACK_prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MapoDb.Properties.Settings.MoonPro_ES3ConnectionString": "Data Source=SQL2016PROD;Initial Catalog=Jetco_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=Jetco_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=Jetco_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;" + } +} \ No newline at end of file diff --git a/WebConfigSetter/CONF/LVF.json b/WebConfigSetter/CONF/LVF.json new file mode 100644 index 00000000..b3d254c1 --- /dev/null +++ b/WebConfigSetter/CONF/LVF.json @@ -0,0 +1,25 @@ +{ + "appSettRules": { + "DbConfConnectionString": "Data Source=SQL2016PROD;Initial Catalog=Lvf_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MoonProConnectionString": "Data Source=SQL2016PROD;Initial Catalog=Lvf_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MoonProConnectionStringIS": "Data Source=SQL2016PROD;Initial Catalog=Lvf_MoonPro_IS_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MoonProConnectionStringES3": "Data Source=SQL2016PROD;Initial Catalog=Lvf_MoonPro_ES3_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "PermessiConnectionString": "Data Source=SQL2016PROD;Initial Catalog=Lvf_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "UtenteCdcConnectionString": "Data Source=SQL2016PROD;Initial Catalog=Lvf_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "VocabolarioConnectionString": "Data Source=SQL2016PROD;Initial Catalog=Lvf_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "DevicesConnectionString": "Data Source=SQL2016PROD;Initial Catalog=Lvf_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "DevicesAuthConnectionString": "Data Source=SQL2016PROD;Initial Catalog=Lvf_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MoonProConnectionStringArca": "Data Source=SQL2016PROD;Initial Catalog=Lvf_MoonPro_IS_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MoonProConnectionStringMAG": "Data Source=SQL2016PROD;Initial Catalog=Lvf_MoonPro_MAG_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;" + }, + "connStrRules": { + "MoonProConnectionString": "Data Source=SQL2016PROD;Initial Catalog=Lvf_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MapoDb.Properties.Settings.MoonProConnectionString": "Data Source=SQL2016PROD;Initial Catalog=Lvf_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MapoDb.Properties.Settings.MoonPro_IS_ConnectionString": "Data Source=SQL2016PROD;Initial Catalog=Lvf_MoonPro_IS_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MapoDb.Properties.Settings.C_TRACKConnectionString": "Data Source=SQL2016DEV;Initial Catalog=Lvf_C_TRACK_prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MapoDb.Properties.Settings.MoonPro_ES3ConnectionString": "Data Source=SQL2016PROD;Initial Catalog=Lvf_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=Lvf_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=Lvf_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;" + } +} \ No newline at end of file diff --git a/WebConfigSetter/CONF/Steamware.json b/WebConfigSetter/CONF/Steamware.json new file mode 100644 index 00000000..309197ae --- /dev/null +++ b/WebConfigSetter/CONF/Steamware.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 From 7176c245d666b5b080b903969104a7c2f35f3aaa Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Mon, 14 Dec 2020 11:27:40 +0100 Subject: [PATCH 3/5] 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 From 4ddf26fc48940da2489a8eb0a7d3e0f46da84c63 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Mon, 14 Dec 2020 12:11:25 +0100 Subject: [PATCH 4/5] fix conf e procedura di modifica (primo test) --- WebConfigSetter/CONF/ColCom.json | 2 +- WebConfigSetter/CONF/Donati.json | 2 +- .../CONF/{Edilchimica.json => EdilChim.json} | 2 +- WebConfigSetter/CONF/Jetco.json | 2 +- WebConfigSetter/CONF/LVF.json | 2 +- WebConfigSetter/CONF/Steamware.json | 46 +++++++++---------- WebConfigSetter/Program.cs | 31 ++++++------- WebConfigSetter/WebConfigSetter.csproj | 24 ++++++++++ 8 files changed, 66 insertions(+), 45 deletions(-) rename WebConfigSetter/CONF/{Edilchimica.json => EdilChim.json} (96%) diff --git a/WebConfigSetter/CONF/ColCom.json b/WebConfigSetter/CONF/ColCom.json index 00579ec6..59842259 100644 --- a/WebConfigSetter/CONF/ColCom.json +++ b/WebConfigSetter/CONF/ColCom.json @@ -16,7 +16,7 @@ "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.C_TRACKConnectionString": "Data Source=SQL2016PROD;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\"", diff --git a/WebConfigSetter/CONF/Donati.json b/WebConfigSetter/CONF/Donati.json index 2bd32874..9b9d386a 100644 --- a/WebConfigSetter/CONF/Donati.json +++ b/WebConfigSetter/CONF/Donati.json @@ -16,7 +16,7 @@ "MoonProConnectionString": "Data Source=SQL2016PROD;Initial Catalog=Donati_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", "MapoDb.Properties.Settings.MoonProConnectionString": "Data Source=SQL2016PROD;Initial Catalog=Donati_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", "MapoDb.Properties.Settings.MoonPro_IS_ConnectionString": "Data Source=SQL2016PROD;Initial Catalog=Donati_MoonPro_IS_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", - "MapoDb.Properties.Settings.C_TRACKConnectionString": "Data Source=SQL2016DEV;Initial Catalog=Donati_C_TRACK_prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MapoDb.Properties.Settings.C_TRACKConnectionString": "Data Source=SQL2016PROD;Initial Catalog=Donati_C_TRACK_prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", "MapoDb.Properties.Settings.MoonPro_ES3ConnectionString": "Data Source=SQL2016PROD;Initial Catalog=Donati_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=Donati_MoonPro_Prod;persist security info=True;user id=sa;password=keyhammer16;multipleactiveresultsets=True;application name=EntityFramework\"", diff --git a/WebConfigSetter/CONF/Edilchimica.json b/WebConfigSetter/CONF/EdilChim.json similarity index 96% rename from WebConfigSetter/CONF/Edilchimica.json rename to WebConfigSetter/CONF/EdilChim.json index 363f0d3e..55319f84 100644 --- a/WebConfigSetter/CONF/Edilchimica.json +++ b/WebConfigSetter/CONF/EdilChim.json @@ -16,7 +16,7 @@ "MoonProConnectionString": "Data Source=SQL2016PROD;Initial Catalog=EdilChim_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", "MapoDb.Properties.Settings.MoonProConnectionString": "Data Source=SQL2016PROD;Initial Catalog=EdilChim_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", "MapoDb.Properties.Settings.MoonPro_IS_ConnectionString": "Data Source=SQL2016PROD;Initial Catalog=EdilChim_MoonPro_IS_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", - "MapoDb.Properties.Settings.C_TRACKConnectionString": "Data Source=SQL2016DEV;Initial Catalog=EdilChim_C_TRACK_prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MapoDb.Properties.Settings.C_TRACKConnectionString": "Data Source=SQL2016PROD;Initial Catalog=EdilChim_C_TRACK_prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", "MapoDb.Properties.Settings.MoonPro_ES3ConnectionString": "Data Source=SQL2016PROD;Initial Catalog=EdilChim_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=EdilChim_MoonPro_Prod;persist security info=True;user id=sa;password=keyhammer16;multipleactiveresultsets=True;application name=EntityFramework\"", diff --git a/WebConfigSetter/CONF/Jetco.json b/WebConfigSetter/CONF/Jetco.json index e858d578..6edecf12 100644 --- a/WebConfigSetter/CONF/Jetco.json +++ b/WebConfigSetter/CONF/Jetco.json @@ -16,7 +16,7 @@ "MoonProConnectionString": "Data Source=SQL2016PROD;Initial Catalog=Jetco_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", "MapoDb.Properties.Settings.MoonProConnectionString": "Data Source=SQL2016PROD;Initial Catalog=Jetco_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", "MapoDb.Properties.Settings.MoonPro_IS_ConnectionString": "Data Source=SQL2016PROD;Initial Catalog=Jetco_MoonPro_IS_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", - "MapoDb.Properties.Settings.C_TRACKConnectionString": "Data Source=SQL2016DEV;Initial Catalog=Jetco_C_TRACK_prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MapoDb.Properties.Settings.C_TRACKConnectionString": "Data Source=SQL2016PROD;Initial Catalog=Jetco_C_TRACK_prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", "MapoDb.Properties.Settings.MoonPro_ES3ConnectionString": "Data Source=SQL2016PROD;Initial Catalog=Jetco_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=Jetco_MoonPro_Prod;persist security info=True;user id=sa;password=keyhammer16;multipleactiveresultsets=True;application name=EntityFramework\"", diff --git a/WebConfigSetter/CONF/LVF.json b/WebConfigSetter/CONF/LVF.json index b3d254c1..66724986 100644 --- a/WebConfigSetter/CONF/LVF.json +++ b/WebConfigSetter/CONF/LVF.json @@ -16,7 +16,7 @@ "MoonProConnectionString": "Data Source=SQL2016PROD;Initial Catalog=Lvf_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", "MapoDb.Properties.Settings.MoonProConnectionString": "Data Source=SQL2016PROD;Initial Catalog=Lvf_MoonPro_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", "MapoDb.Properties.Settings.MoonPro_IS_ConnectionString": "Data Source=SQL2016PROD;Initial Catalog=Lvf_MoonPro_IS_Prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", - "MapoDb.Properties.Settings.C_TRACKConnectionString": "Data Source=SQL2016DEV;Initial Catalog=Lvf_C_TRACK_prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", + "MapoDb.Properties.Settings.C_TRACKConnectionString": "Data Source=SQL2016PROD;Initial Catalog=Lvf_C_TRACK_prod;Persist Security Info=True;User ID=sa;Password=keyhammer16;", "MapoDb.Properties.Settings.MoonPro_ES3ConnectionString": "Data Source=SQL2016PROD;Initial Catalog=Lvf_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=Lvf_MoonPro_Prod;persist security info=True;user id=sa;password=keyhammer16;multipleactiveresultsets=True;application name=EntityFramework\"", diff --git a/WebConfigSetter/CONF/Steamware.json b/WebConfigSetter/CONF/Steamware.json index 309197ae..1034fd20 100644 --- a/WebConfigSetter/CONF/Steamware.json +++ b/WebConfigSetter/CONF/Steamware.json @@ -1,25 +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;" - } + "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;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=MoonPro;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/Program.cs b/WebConfigSetter/Program.cs index 83ee5e38..2073c78b 100644 --- a/WebConfigSetter/Program.cs +++ b/WebConfigSetter/Program.cs @@ -40,10 +40,6 @@ namespace WebConfigSetter private static void Main(string[] args) { - //Console.WriteLine($"Base dir: {baseDir}"); - //Console.WriteLine($"Conf dir: {confDir}"); - //Console.WriteLine($"Set file: {setFile}"); - if (args == null || args.Length == 0) { Console.WriteLine(separatore); @@ -74,7 +70,7 @@ namespace WebConfigSetter userInput = Console.ReadLine(); if (!string.IsNullOrEmpty(userInput)) { - baseWebAppDir = userInput; + setName = userInput; } } else @@ -175,6 +171,10 @@ namespace WebConfigSetter private static void writeConfToFiles() { + // leggo il file delle configurazioni da applicare... + string rawData = File.ReadAllText(currentSetFile); + currConfig = JsonConvert.DeserializeObject(rawData); + // cerca i file we.config dalla folder richiesta in giù... string[] configFiles = Directory.GetFiles(baseWebAppDir, "web.config", SearchOption.AllDirectories); XmlDocument doc = new XmlDocument(); @@ -193,11 +193,10 @@ namespace WebConfigSetter { if (appSettingsList[i].Attributes["key"].Value.Contains("ConnectionString")) { - // effettuo sostituzione - - if (!currConfig.appSettRules.ContainsKey(appSettingsList[i].Attributes["key"].Value)) + if (currConfig.appSettRules.ContainsKey(appSettingsList[i].Attributes["key"].Value)) { - currConfig.appSettRules.Add(appSettingsList[i].Attributes["key"].Value, appSettingsList[i].Attributes["value"].Value); + // effettuo sostituzione + appSettingsList[i].Attributes["value"].Value = currConfig.appSettRules[appSettingsList[i].Attributes["key"].Value]; } } } @@ -206,18 +205,16 @@ namespace WebConfigSetter for (int i = 0; i < connectionStringsList.Count; i++) { - if (!currConfig.connStrRules.ContainsKey(connectionStringsList[i].Attributes["name"].Value)) + if (currConfig.connStrRules.ContainsKey(connectionStringsList[i].Attributes["name"].Value)) { - currConfig.connStrRules.Add(connectionStringsList[i].Attributes["name"].Value, connectionStringsList[i].Attributes["connectionString"].Value); + // effettuo sostituzione + connectionStringsList[i].Attributes["connectionString"].Value = currConfig.connStrRules[connectionStringsList[i].Attributes["name"].Value]; } } + + // ora lo SALVO (il documento...) + doc.Save(item); } - - // serializzo! - string rawData = JsonConvert.SerializeObject(currConfig, Newtonsoft.Json.Formatting.Indented); - - // salvo il file di conf! - File.WriteAllText(currentSetFile, rawData); } #endregion Private Methods diff --git a/WebConfigSetter/WebConfigSetter.csproj b/WebConfigSetter/WebConfigSetter.csproj index c7f13013..bdfc01c1 100644 --- a/WebConfigSetter/WebConfigSetter.csproj +++ b/WebConfigSetter/WebConfigSetter.csproj @@ -18,4 +18,28 @@ + + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + \ No newline at end of file From 43697de5865dede52fea752faabac66682cb0f7d Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Mon, 14 Dec 2020 13:00:38 +0100 Subject: [PATCH 5/5] Fix WebConfigSetter --- WebConfigSetter/Program.cs | 127 +++++++++++++++++++++---------------- 1 file changed, 73 insertions(+), 54 deletions(-) diff --git a/WebConfigSetter/Program.cs b/WebConfigSetter/Program.cs index 2073c78b..a7e180a2 100644 --- a/WebConfigSetter/Program.cs +++ b/WebConfigSetter/Program.cs @@ -40,6 +40,7 @@ namespace WebConfigSetter private static void Main(string[] args) { + string userInput = ""; if (args == null || args.Length == 0) { Console.WriteLine(separatore); @@ -51,21 +52,40 @@ namespace WebConfigSetter Console.WriteLine(""); Console.WriteLine("Nessuna parametro fornito, verranno ora richiesti i parametri"); Console.WriteLine(separatore); - - // chiedo tutti i dati... - string userInput = ""; + } + // carico parametri opzionali + if (args.Length > 0) + { + opMode = args[0] == "1" ? operationMode.writeConf : operationMode.readConf; + } + else + { Console.WriteLine($"Modalità operativa 0=read, 1=write [{opMode}]"); userInput = Console.ReadLine(); if (!string.IsNullOrEmpty(userInput)) { opMode = userInput == "1" ? operationMode.writeConf : operationMode.readConf; } + } + if (args.Length > 1) + { + baseWebAppDir = args[1]; + } + else + { Console.WriteLine($"WebApp directory di base [{baseWebAppDir}]"); userInput = Console.ReadLine(); if (!string.IsNullOrEmpty(userInput)) { baseWebAppDir = userInput; } + } + if (args.Length > 2) + { + setName = args[2]; + } + else + { Console.WriteLine($"SetName da applicare [{setName}]"); userInput = Console.ReadLine(); if (!string.IsNullOrEmpty(userInput)) @@ -73,23 +93,6 @@ namespace WebConfigSetter setName = userInput; } } - else - { - // carico parametri opzionali - - if (args.Length > 0) - { - baseWebAppDir = args[0]; - } - if (args.Length > 1) - { - baseWebAppDir = args[1]; - } - if (args.Length > 2) - { - setName = args[2]; - } - } Console.WriteLine(separatore); Console.WriteLine($"Modalità operativa: {opMode}"); @@ -171,49 +174,65 @@ namespace WebConfigSetter private static void writeConfToFiles() { - // leggo il file delle configurazioni da applicare... - string rawData = File.ReadAllText(currentSetFile); - currConfig = JsonConvert.DeserializeObject(rawData); - - // 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) + // check file exists... + if (File.Exists(currentSetFile)) { - 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++) + // leggo il file delle configurazioni da applicare... + string rawData = File.ReadAllText(currentSetFile); + if (!string.IsNullOrEmpty(rawData)) { - if (appSettingsList[i].Attributes["key"].Value.Contains("ConnectionString")) + currConfig = JsonConvert.DeserializeObject(rawData); + + // 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) { - if (currConfig.appSettRules.ContainsKey(appSettingsList[i].Attributes["key"].Value)) + Console.Write($"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++) { - // effettuo sostituzione - appSettingsList[i].Attributes["value"].Value = currConfig.appSettRules[appSettingsList[i].Attributes["key"].Value]; + if (appSettingsList[i].Attributes["key"].Value.Contains("ConnectionString")) + { + if (currConfig.appSettRules.ContainsKey(appSettingsList[i].Attributes["key"].Value)) + { + // effettuo sostituzione + appSettingsList[i].Attributes["value"].Value = currConfig.appSettRules[appSettingsList[i].Attributes["key"].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)) + { + // effettuo sostituzione + connectionStringsList[i].Attributes["connectionString"].Value = currConfig.connStrRules[connectionStringsList[i].Attributes["name"].Value]; + } + } + + // ora lo SALVO (il documento...) + doc.Save(item); + Console.WriteLine(" values updated!"); } } - // cerco in connectionStrings - XmlNodeList connectionStringsList = doc.SelectNodes("configuration/connectionStrings/*"); - - for (int i = 0; i < connectionStringsList.Count; i++) + else { - if (currConfig.connStrRules.ContainsKey(connectionStringsList[i].Attributes["name"].Value)) - { - // effettuo sostituzione - connectionStringsList[i].Attributes["connectionString"].Value = currConfig.connStrRules[connectionStringsList[i].Attributes["name"].Value]; - } + Console.WriteLine($"Errore: file conf vuoto: {currentSetFile}"); } - - // ora lo SALVO (il documento...) - doc.Save(item); + } + else + { + Console.WriteLine($"Errore: file conf non trovato: {currentSetFile}"); } }