Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            Console.OutputEncoding = System.Text.Encoding.UTF8;
            //string directory = Directory.GetCurrentDirectory();
            //string path = Path.GetDirectoryName(Assembly.GetAssembly(typeof(Program)).CodeBase);
            //string directoryName = new FileInfo(Assembly.GetExecutingAssembly().Location).DirectoryName;
            // Best to use:
            string projectPath = AppDomain.CurrentDomain.BaseDirectory;

            // Attention! Replace is case sensitive!
            projectPath = projectPath.Replace(@"\Release", string.Empty).Replace(@"\Debug", string.Empty).Replace(@"\bin", string.Empty);
            var           dataPath  = Path.Combine(projectPath, "data");
            DataExtractor extractor = DataExtractor.Load(dataPath, downloadData: false);

            // Currently available DBType:
            // "MsSqlConnection", "MySqlConnection", "PostgreSqlConnection", "SQLiteConnection", "OracleConnection", "MongoDBConnection"
            // Setup DBType in App.config, attribute 'name', within "<connectionStrings>" as <add name="YOUR_DBType" ... />
            IDataToDBs saveDataToBBs = DataToDBs.SaveDataToDBs(projectPath, dataPath, DBType: "OracleConnection", createDatabase: true, dataExtractor: extractor, forceFullCompare: true);

            saveDataToBBs.Save();

            Console.WriteLine();
            Console.WriteLine("Imports done.\r\nPress Enter to finish.");
            Console.Read();
        }
Ejemplo n.º 2
0
        public static IDataToDBs SaveDataToDBs(string projectPath, string dataPath, string DBType, bool createDatabase, DataExtractor dataExtractor, bool forceFullCompare = false)
        {
            // eg. change from connectionStrings name "MsSqlConnection" to Classname "DataToMsSql"
            string className = "DataTo" + DBType.Replace("Connection", string.Empty);
            // All derived classes have to be in the same namepsace!
            string namespaceName = typeof(DataToDBs).Namespace;

            try
            {
                DataToDBsInterface = (IDataToDBs)Activator.CreateInstance(Type.GetType(namespaceName + "." + className), projectPath, dataPath, DBType, createDatabase, dataExtractor, forceFullCompare);
            }
            catch
            {
                Console.WriteLine();
                Console.WriteLine("*** ERROR-SaveDataToDBs ***:\r\nMessage: Class: '{0}' not defined!", className);
                Console.WriteLine("*** ERROR-SaveDataToDBs ***:\r\nDatabase-Client '{0}' not provided!", DBType);
                Console.Read();
                Environment.Exit(-1);
            }

            return(DataToDBsInterface);
        }