diff options
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/ViewModels/RemoteSynchronizationViewVM.cs')
| -rw-r--r-- | Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/ViewModels/RemoteSynchronizationViewVM.cs | 55 |
1 files changed, 54 insertions, 1 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/ViewModels/RemoteSynchronizationViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/ViewModels/RemoteSynchronizationViewVM.cs index e14b0ffb9..0f427643f 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/ViewModels/RemoteSynchronizationViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/ViewModels/RemoteSynchronizationViewVM.cs @@ -10,7 +10,7 @@ using System.Threading; using System.Threading.Tasks; using Tango.Core.Commands; using Tango.DAL.Local.DB; -using Tango.DAL.Observables; +using Tango.Integration.Observables; using Tango.DAL.Remote.DB; using Tango.Logging; using Tango.MachineStudio.Common.Notifications; @@ -21,9 +21,15 @@ using Tango.SharedUI; using Tango.Synchronization; using Tango.Synchronization.Local; using Tango.Synchronization.Remote; +using Microsoft.Practices.ServiceLocation; namespace Tango.MachineStudio.Synchronization.ViewModels { + /// <summary> + /// Represents the 'Semi Remote Synchronization' view model. + /// </summary> + /// <seealso cref="Tango.SharedUI.ViewModel" /> + /// <seealso cref="Tango.MachineStudio.Common.StudioApplication.IShutdownRequestBlocker" /> public class RemoteSynchronizationViewVM : ViewModel, IShutdownRequestBlocker { private SyncNavigationManager _navigation; @@ -33,6 +39,7 @@ namespace Tango.MachineStudio.Synchronization.ViewModels private RemoteDBComparer _comparer; private RemoteDB _remoteDB; private LocalDB _localDB; + private MainViewVM _mainView; #region Constructors @@ -104,6 +111,21 @@ 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 Properties private ObservableCollection<Diff> _differences; @@ -158,6 +180,9 @@ namespace Tango.MachineStudio.Synchronization.ViewModels #region Private Methods + /// <summary> + /// Cleans the slave database file. + /// </summary> private async void CleanSlave() { if (_notification.ShowQuestion("Are you sure you want to erase all data on slave database?")) @@ -195,6 +220,9 @@ namespace Tango.MachineStudio.Synchronization.ViewModels } } + /// <summary> + /// Compares the remote database with the selected database file. + /// </summary> private void Compare() { Task.Factory.StartNew(() => @@ -211,6 +239,7 @@ namespace Tango.MachineStudio.Synchronization.ViewModels _remoteDB = RemoteDB.CreateDefault(); _localDB = new LocalDB(SlaveDBFile); _comparer = new RemoteDBComparer(_remoteDB, _localDB, SelectedMachine.SerialNumber); + _comparer.Progress += Comparer_Progress; _isWorking = true; InvalidateRelayCommands(); Thread.Sleep(1500); @@ -243,6 +272,9 @@ namespace Tango.MachineStudio.Synchronization.ViewModels }); } + /// <summary> + /// Commits the selected difference. + /// </summary> private void Commit() { Task.Factory.StartNew(() => @@ -274,6 +306,9 @@ namespace Tango.MachineStudio.Synchronization.ViewModels }); } + /// <summary> + /// Commits all the differences. + /// </summary> private void CommitAll() { Task.Factory.StartNew(() => @@ -325,6 +360,9 @@ namespace Tango.MachineStudio.Synchronization.ViewModels }); } + /// <summary> + /// Browse for slave database file. + /// </summary> private void BrowseSlaveDB() { String file = BrowseForFilePath(); @@ -336,6 +374,9 @@ namespace Tango.MachineStudio.Synchronization.ViewModels } } + /// <summary> + /// Browse for database file. + /// </summary> private String BrowseForFilePath() { OpenFileDialog dlg = new OpenFileDialog(); @@ -348,16 +389,28 @@ 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)); } + /// <summary> + /// Called when the application is shutting down. + /// </summary> + /// <returns></returns> public Task<bool> OnShutdownRequest() { if (_comparer != null) |
