aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/ViewModels/LocalSynchronizationViewVM.cs
diff options
context:
space:
mode:
authorRoy <roy.mail.net@gmail.com>2017-12-22 13:28:53 +0200
committerRoy <roy.mail.net@gmail.com>2017-12-22 13:28:53 +0200
commit6091da506db1083f6ca707c24e509ca3470f6a73 (patch)
treeb6d87616e70e8035762aedab4271aeee4955f3a2 /Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/ViewModels/LocalSynchronizationViewVM.cs
parent9989238711695810324960c82b1bd85fc67c570e (diff)
downloadTango-6091da506db1083f6ca707c24e509ca3470f6a73.tar.gz
Tango-6091da506db1083f6ca707c24e509ca3470f6a73.zip
Implemented Remote To Local File Synchronization.
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/ViewModels/LocalSynchronizationViewVM.cs')
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/ViewModels/LocalSynchronizationViewVM.cs81
1 files changed, 71 insertions, 10 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/ViewModels/LocalSynchronizationViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/ViewModels/LocalSynchronizationViewVM.cs
index 773080813..9c805cca4 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/ViewModels/LocalSynchronizationViewVM.cs
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/ViewModels/LocalSynchronizationViewVM.cs
@@ -46,20 +46,21 @@ namespace Tango.MachineStudio.Synchronization.ViewModels
BrowseMasterDBCommand = new RelayCommand(BrowseMasterDB, (x) => !_isWorking);
BrowseSlaveDBCommand = new RelayCommand(BrowseSlaveDB, (x) => !_isWorking);
- CompareCommand = new RelayCommand(Compare, (x) => _masterDBFile != null && _slaveDBFile != null && !_isWorking);
+ CompareCommand = new RelayCommand(Compare, (x) => MasterDBFile != null && SlaveDBFile != null && !_isWorking);
CommitCommand = new RelayCommand(Commit, (x) => SelectedDifference != null && !_isWorking);
CommitAllCommand = new RelayCommand(CommitAll, (x) => Differences.Count > 0 && !_isWorking);
+ CleanCommand = new RelayCommand(CleanSlave, (x) => !_isWorking && SlaveDBFile != null);
if (File.Exists(SettingsManager.Default.MachineStudio.SynchronizationModule.LocalMasterDBFile))
{
- _masterDBFile = SettingsManager.Default.MachineStudio.SynchronizationModule.LocalMasterDBFile;
- MasterDBName = Path.GetFileName(_masterDBFile);
+ MasterDBFile = SettingsManager.Default.MachineStudio.SynchronizationModule.LocalMasterDBFile;
+ MasterDBName = Path.GetFileName(MasterDBFile);
}
if (File.Exists(SettingsManager.Default.MachineStudio.SynchronizationModule.LocalSlaveDBFile))
{
- _slaveDBFile = SettingsManager.Default.MachineStudio.SynchronizationModule.LocalSlaveDBFile;
- SlaveDBName = Path.GetFileName(_slaveDBFile);
+ SlaveDBFile = SettingsManager.Default.MachineStudio.SynchronizationModule.LocalSlaveDBFile;
+ SlaveDBName = Path.GetFileName(SlaveDBFile);
}
}
@@ -96,6 +97,11 @@ namespace Tango.MachineStudio.Synchronization.ViewModels
/// Gets or sets the commit all command.
/// </summary>
public RelayCommand CommitAllCommand { get; set; }
+
+ /// <summary>
+ /// Gets or sets the clean command.
+ /// </summary>
+ public RelayCommand CleanCommand { get; set; }
#endregion
#region Properties
@@ -140,13 +146,68 @@ namespace Tango.MachineStudio.Synchronization.ViewModels
set { _slaveDBName = value; RaisePropertyChanged(nameof(SlaveDBName)); }
}
+ /// <summary>
+ /// Gets or sets the slave database file.
+ /// </summary>
+ public String SlaveDBFile
+ {
+ get { return _slaveDBFile; }
+ set { _slaveDBFile = value; RaisePropertyChangedAuto(); }
+ }
+
+ /// <summary>
+ /// Gets or sets the master database file.
+ /// </summary>
+ public String MasterDBFile
+ {
+ get { return _masterDBFile; }
+ set { _masterDBFile = value; RaisePropertyChangedAuto(); }
+ }
+
#endregion
#region Private Methods
+ private async void CleanSlave()
+ {
+ if (_notification.ShowQuestion("Are you sure you want to erase all data on slave database?"))
+ {
+ using (_notification.PushTaskItem("Clearing database..."))
+ {
+ try
+ {
+ _isWorking = true;
+ await Task.Factory.StartNew(() =>
+ {
+ SQLiteDataBase localDB = new SQLiteDataBase(SlaveDBFile);
+ localDB.LoadTables();
+ localDB.ClearDataBase();
+ try
+ {
+ localDB.Dispose();
+ }
+ catch { }
+ });
+
+ Differences.Clear();
+ }
+ catch (Exception ex)
+ {
+ ShowError(LogManager.Log(ex).Message);
+ }
+ finally
+ {
+ _isWorking = false;
+ InvalidateRelayCommands();
+ SelectedDifference = null;
+ }
+ }
+ }
+ }
+
private void Compare()
{
- _comparer = new LocalDBComparer(new SQLiteDataBase(_masterDBFile), new SQLiteDataBase(_slaveDBFile));
+ _comparer = new LocalDBComparer(new SQLiteDataBase(MasterDBFile), new SQLiteDataBase(SlaveDBFile));
Task.Factory.StartNew(() =>
{
@@ -179,8 +240,8 @@ namespace Tango.MachineStudio.Synchronization.ViewModels
SelectedDifference = null;
InvalidateRelayCommands();
- SettingsManager.Default.MachineStudio.SynchronizationModule.LocalMasterDBFile = _masterDBFile;
- SettingsManager.Default.MachineStudio.SynchronizationModule.LocalSlaveDBFile = _slaveDBFile;
+ SettingsManager.Default.MachineStudio.SynchronizationModule.LocalMasterDBFile = MasterDBFile;
+ SettingsManager.Default.MachineStudio.SynchronizationModule.LocalSlaveDBFile = SlaveDBFile;
SettingsManager.SaveDefaultSettings();
}
}
@@ -258,7 +319,7 @@ namespace Tango.MachineStudio.Synchronization.ViewModels
String file = BrowseForFilePath();
if (file != null)
{
- _slaveDBFile = file;
+ SlaveDBFile = file;
SlaveDBName = Path.GetFileName(file);
InvalidateRelayCommands();
}
@@ -269,7 +330,7 @@ namespace Tango.MachineStudio.Synchronization.ViewModels
String file = BrowseForFilePath();
if (file != null)
{
- _masterDBFile = file;
+ MasterDBFile = file;
MasterDBName = Path.GetFileName(file);
InvalidateRelayCommands();
}