public SiteConfigurationCollection GetFromXml() { Clear(); var x = new XmlSerializer(typeof(SiteConfigurationCollection)); Console.WriteLine(string.Format("Site Configuration Collection **** Path: {0}", _DataFolderPath)); try { using (var objStreamReader = new StreamReader(_DataFolderPath)) { var myY = (SiteConfigurationCollection)x.Deserialize(objStreamReader); AddRange(myY); } } catch (Exception ex) { Console.WriteLine(string.Format("Site Configuration Collection **** ERROR: {0}", ex)); var myList = new SiteConfigurationCollection(); myList.Add(new DbConfiguration() { ConnectionString = "************ CONNECTION STRING ************;", SiteName = "*** SITENAME ****" }); myList._DataFolderPath = _DataFolderPath.Replace(".xml", "_new.xml"); myList.SaveXml(); } return(this); }
static void Main(string[] args) { var myExportConfig = new ExportConfiguration(); var path = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location); myExportConfig.ConfigPath = $"{path}\\config\\"; myExportConfig.GetFromXml(); Console.WriteLine(" **** "); Console.WriteLine(" **** "); Console.WriteLine(" **** "); Console.WriteLine(string.Format(" **** Configuration Path: {0}", myExportConfig.ConfigPath)); Console.WriteLine(string.Format(" **** Data Path: {0}", myExportConfig.DataPath)); Console.WriteLine(string.Format(" **** Script Path: {0}", myExportConfig.ScriptPath)); Console.WriteLine(string.Format(" **** Configuration List: {0}", myExportConfig.DatabaseConfigurationListPath)); Console.WriteLine(" **** "); Console.WriteLine(" **** "); Console.WriteLine(" **** "); EnsurePathExists(myExportConfig.ConfigPath); EnsurePathExists(myExportConfig.DataPath); EnsurePathExists(myExportConfig.ScriptPath); EnsurePathExists(myExportConfig.DatabaseConfigurationListPath); var myConfigList = new SiteConfigurationCollection() { DataFolderPath = myExportConfig.DatabaseConfigurationListPath }; myConfigList.GetFromXml(); Export.ProcessExtractSql(myConfigList, myExportConfig); Console.ReadKey(); }
public static string ProcessExtractSql(SiteConfigurationCollection mySiteList, ExportConfiguration myExportConfig) { var Response = new StringBuilder(); var Sql = string.Empty; var Dt = new DataTable(); var Message = string.Empty; var ext = new List <string> { ".sql" }; IEnumerable <string> mySQLFiles; IEnumerable <string> allSQLFiles; try { allSQLFiles = Directory.GetFiles(myExportConfig.ScriptPath).ToList(); mySQLFiles = Directory.GetFiles(myExportConfig.ScriptPath, "*.*", SearchOption.AllDirectories).Where(s => ext.Any(e => s.EndsWith(e))).ToList(); foreach (DbConfiguration mySite in mySiteList) { foreach (string myFile in mySQLFiles) { try { var myStopWatch = new Stopwatch(); myStopWatch.Start(); Sql = File.ReadAllText(myFile); Dt = GetDataTable(Sql, mySite.ConnectionString); var SiteDataFolder = myExportConfig.DataPath; if (!Directory.Exists(SiteDataFolder)) { Directory.CreateDirectory(SiteDataFolder); } var SiteFileName = string.Format("{0}\\{1}-{2}.txt", SiteDataFolder, mySite.SiteName, myFile.Replace(myExportConfig.ScriptPath, string.Empty).Replace(".sql", string.Empty)); SiteFileName = string.Format("{0}\\{1}.csv", SiteDataFolder, myFile.Replace(myExportConfig.ScriptPath, string.Empty).Replace(".sql", string.Empty)); using (var writer = new StreamWriter(SiteFileName, false)) { WriteDataTableCsv(Dt, writer, true); } myStopWatch.Stop(); Message = string.Format("{1} - {0} time:{2}", myFile.Replace(myExportConfig.ScriptPath, string.Empty), mySite.SiteName, myStopWatch.ElapsedMilliseconds); Response.AppendLine(Message); Console.WriteLine(Message); } catch (Exception e) { Console.WriteLine("{0} Exception caught.", e); } } } } catch (Exception e) { Console.WriteLine("{0} Exception caught.", e); } return(Response.ToString()); }