コード例 #1
0
        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);
        }
コード例 #2
0
        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();
        }
コード例 #3
0
ファイル: Export.cs プロジェクト: markhazleton/sql2csv
        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());
        }