aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/ViewModels/LocalSynchronizationViewVM.cs
diff options
context:
space:
mode:
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.cs53
1 files changed, 52 insertions, 1 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 9c805cca4..2621f622a 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
@@ -1,4 +1,5 @@
-using Microsoft.Win32;
+using Microsoft.Practices.ServiceLocation;
+using Microsoft.Win32;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
@@ -19,6 +20,10 @@ using Tango.Synchronization.Local;
namespace Tango.MachineStudio.Synchronization.ViewModels
{
+ /// <summary>
+ /// Represents the 'Local Synchronization' view model.
+ /// </summary>
+ /// <seealso cref="Tango.SharedUI.ViewModel" />
public class LocalSynchronizationViewVM : ViewModel
{
private SyncNavigationManager _navigation;
@@ -27,6 +32,7 @@ namespace Tango.MachineStudio.Synchronization.ViewModels
private LocalDBComparer _comparer;
private INotificationProvider _notification;
private bool _isWorking;
+ private MainViewVM _mainView;
#region Constructors
@@ -166,8 +172,26 @@ namespace Tango.MachineStudio.Synchronization.ViewModels
#endregion
+ #region Event Handlers
+
+ private void Comparer_Progress(object sender, string e)
+ {
+ if (_mainView == null)
+ {
+ _mainView = ServiceLocator.Current.GetInstance<MainViewVM>();
+ _mainView.Log = String.Empty;
+ }
+
+ _mainView.Log += ("[" + DateTime.Now.ToTimeString() + "] " + e + Environment.NewLine);
+ }
+
+ #endregion
+
#region Private Methods
+ /// <summary>
+ /// Cleans the slave database.
+ /// </summary>
private async void CleanSlave()
{
if (_notification.ShowQuestion("Are you sure you want to erase all data on slave database?"))
@@ -205,9 +229,13 @@ namespace Tango.MachineStudio.Synchronization.ViewModels
}
}
+ /// <summary>
+ /// Compares the master and slave database files.
+ /// </summary>
private void Compare()
{
_comparer = new LocalDBComparer(new SQLiteDataBase(MasterDBFile), new SQLiteDataBase(SlaveDBFile));
+ _comparer.Progress += Comparer_Progress;
Task.Factory.StartNew(() =>
{
@@ -248,6 +276,9 @@ namespace Tango.MachineStudio.Synchronization.ViewModels
});
}
+ /// <summary>
+ /// Commits the selected difference.
+ /// </summary>
private void Commit()
{
Task.Factory.StartNew(() =>
@@ -277,6 +308,9 @@ namespace Tango.MachineStudio.Synchronization.ViewModels
});
}
+ /// <summary>
+ /// Commits all the differences.
+ /// </summary>
private void CommitAll()
{
Task.Factory.StartNew(() =>
@@ -314,6 +348,9 @@ namespace Tango.MachineStudio.Synchronization.ViewModels
});
}
+ /// <summary>
+ /// Browse for slave database file.
+ /// </summary>
private void BrowseSlaveDB()
{
String file = BrowseForFilePath();
@@ -325,6 +362,9 @@ namespace Tango.MachineStudio.Synchronization.ViewModels
}
}
+ /// <summary>
+ /// Browse for master database file.
+ /// </summary>
private void BrowseMasterDB()
{
String file = BrowseForFilePath();
@@ -336,6 +376,9 @@ namespace Tango.MachineStudio.Synchronization.ViewModels
}
}
+ /// <summary>
+ /// Browse for database file.
+ /// </summary>
private String BrowseForFilePath()
{
OpenFileDialog dlg = new OpenFileDialog();
@@ -348,11 +391,19 @@ namespace Tango.MachineStudio.Synchronization.ViewModels
return null;
}
+ /// <summary>
+ /// Displays an error message.
+ /// </summary>
+ /// <param name="message">The message.</param>
private void ShowError(String message)
{
InvokeUINow(() => _notification.ShowError(message));
}
+ /// <summary>
+ /// Displays an information message.
+ /// </summary>
+ /// <param name="message">The message.</param>
private void ShowInfo(String message)
{
InvokeUINow(() => _notification.ShowInfo(message));