diff options
| author | Avi Levkovich <avi@twine-s.com> | 2018-02-20 16:45:00 +0200 |
|---|---|---|
| committer | Avi Levkovich <avi@twine-s.com> | 2018-02-20 16:45:00 +0200 |
| commit | 6c208c90bc45aff4a7fa214356a42fe7757c5e6f (patch) | |
| tree | 0d77bc6a0ecfbb53cf42c5462ee19212197ee1bd /Software/Visual_Studio/Utilities/Tango.SQLiteGenerator.CLI/Program.cs | |
| parent | b0823127f152fe97a6e8fce29e427c7f3db9cf5a (diff) | |
| parent | 1a573aaa346ec4b8bd58a0e35ab9df571a09b855 (diff) | |
| download | Tango-6c208c90bc45aff4a7fa214356a42fe7757c5e6f.tar.gz Tango-6c208c90bc45aff4a7fa214356a42fe7757c5e6f.zip | |
MERGE
Diffstat (limited to 'Software/Visual_Studio/Utilities/Tango.SQLiteGenerator.CLI/Program.cs')
| -rw-r--r-- | Software/Visual_Studio/Utilities/Tango.SQLiteGenerator.CLI/Program.cs | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/Software/Visual_Studio/Utilities/Tango.SQLiteGenerator.CLI/Program.cs b/Software/Visual_Studio/Utilities/Tango.SQLiteGenerator.CLI/Program.cs new file mode 100644 index 000000000..242cdcfa9 --- /dev/null +++ b/Software/Visual_Studio/Utilities/Tango.SQLiteGenerator.CLI/Program.cs @@ -0,0 +1,79 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.DAL.Remote.DB; +using Tango.Settings; +using Tango.Synchronization; +using Tango.Synchronization.Conversion; + +namespace Tango.SQLiteGenerator.CLI +{ + class Program + { + static void Main(string[] args) + { + String sqlitePath = args[0]; + + sqlitePath = Path.GetFullPath(sqlitePath); + + bool completed = false; + + String connectionString = SettingsManager.Default.DataBase.SQLServerAddress; + + Console.WriteLine("Connecting to " + connectionString + "..."); + + connectionString = String.Format("Data Source={0};Initial Catalog=Tango;Integrated Security=SSPI;", connectionString); + + List<SYNC_CONFIGURATIONS> sync_configurations = new List<SYNC_CONFIGURATIONS>(); + + using (RemoteDB db = RemoteDB.CreateDefault()) + { + sync_configurations = db.SYNC_CONFIGURATIONS.ToList(); + } + + SqlConversionHandler handler = new SqlConversionHandler(delegate (bool done, bool success, int percent, string msg) + { + Console.WriteLine(String.Format("{0} [%{1}]", msg, percent)); + + if (done) + { + if (success) + { + Console.WriteLine("SQLite database has been generated successfully on " + sqlitePath); + Environment.Exit(0); + } + else + { + Console.WriteLine("SQLite database generation failed!"); + Environment.Exit(-1); + } + + completed = true; + } + }); + + SqlTableSelectionHandler selectionHandler = new SqlTableSelectionHandler(delegate (List<TableSchema> schema) + { + List<TableSchema> updated = schema.Where(x => x.TableName.ToLower() != "sysdiagrams").ToList(); + + updated + .Where(table => sync_configurations.Where(config => (SyncConfiguration)config.SYNC_TYPE == SyncConfiguration.OverwriteLocal).ToList() + .Exists(config => config.TABLE_NAME == table.TableName)).ToList().ForEach(x => x.CopyData = true); + + return updated; + }); + + SqlServerToSQLiteConverter converter = new SqlServerToSQLiteConverter(); + + converter.ConvertSqlServerToSQLiteDatabase(connectionString, sqlitePath, null, handler, selectionHandler, null, false, false); + + while (!completed) + { + Console.ReadLine(); + } + } + } +} |
