aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2018-01-14 17:23:12 +0200
committerRoy Ben-Shabat <Roy@Twine-s.com>2018-01-14 17:23:12 +0200
commitbf2bc8f2b1ad463bac3e4354b842a87c2e7b13eb (patch)
treeba45c35d714e639c4331f7d1d13f91328325c933 /Software/Visual_Studio/MachineStudio/Modules
parent0974fdfcbe68117f7b01c8e4b7364d0abfd08829 (diff)
downloadTango-bf2bc8f2b1ad463bac3e4354b842a87c2e7b13eb.tar.gz
Tango-bf2bc8f2b1ad463bac3e4354b842a87c2e7b13eb.zip
Added code comments for:
MachineStudio.Synchronization
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules')
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/AutoComplete/MachinesProvider.cs9
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Navigation/NavigationView.cs3
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Navigation/SyncNavigationManager.cs7
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/SynchronizationModule.cs31
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/ViewModels/DirectSynchronizationViewVM.cs30
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/ViewModels/LocalSynchronizationViewVM.cs33
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/ViewModels/MainViewVM.cs33
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/ViewModels/MenuViewVM.cs17
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/ViewModels/RemoteSynchronizationViewVM.cs35
9 files changed, 197 insertions, 1 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/AutoComplete/MachinesProvider.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/AutoComplete/MachinesProvider.cs
index 887cb842d..ef2d4fc68 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/AutoComplete/MachinesProvider.cs
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/AutoComplete/MachinesProvider.cs
@@ -9,8 +9,17 @@ using Tango.DAL.Observables;
namespace Tango.MachineStudio.Synchronization.AutoComplete
{
+ /// <summary>
+ /// Represents an auto-complete machines suggestions provider.
+ /// </summary>
+ /// <seealso cref="Tango.AutoComplete.Editors.ISuggestionProvider" />
public class MachinesProvider : ISuggestionProvider
{
+ /// <summary>
+ /// Gets the suggestions.
+ /// </summary>
+ /// <param name="filter">The filter.</param>
+ /// <returns></returns>
public IEnumerable GetSuggestions(string filter)
{
return ObservablesEntitiesAdapter.Instance.Machines.Where(x => x.SerialNumber.StartsWith(filter, StringComparison.CurrentCultureIgnoreCase)).ToList();
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Navigation/NavigationView.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Navigation/NavigationView.cs
index d4212475c..4e846e963 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Navigation/NavigationView.cs
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Navigation/NavigationView.cs
@@ -6,6 +6,9 @@ using System.Threading.Tasks;
namespace Tango.MachineStudio.Synchronization.Navigation
{
+ /// <summary>
+ /// Represents the available views to navigate to within the synchronization module.
+ /// </summary>
public enum NavigationView
{
MenuView,
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Navigation/SyncNavigationManager.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Navigation/SyncNavigationManager.cs
index 847fa2456..8c06418e6 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Navigation/SyncNavigationManager.cs
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Navigation/SyncNavigationManager.cs
@@ -7,8 +7,15 @@ using Tango.MachineStudio.Synchronization.Views;
namespace Tango.MachineStudio.Synchronization.Navigation
{
+ /// <summary>
+ /// Represents the synchronization module views navigation manager.
+ /// </summary>
public class SyncNavigationManager
{
+ /// <summary>
+ /// Navigate to the specified view.
+ /// </summary>
+ /// <param name="view">The view.</param>
public void NavigateTo(NavigationView view)
{
MainView.Instance.TransitionControl.AutoNavigate(view.ToString());
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/SynchronizationModule.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/SynchronizationModule.cs
index 039b9faf6..f6381a482 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/SynchronizationModule.cs
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/SynchronizationModule.cs
@@ -12,27 +12,58 @@ using Tango.SharedUI.Helpers;
namespace Tango.MachineStudio.Synchronization
{
+ /// <summary>
+ /// Represents a Machine Studio module capable of comparing and synchronizing machines data against Twine remote database.
+ /// </summary>
+ /// <seealso cref="Tango.MachineStudio.Common.IStudioModule" />
public class SynchronizationModule : IStudioModule
{
+ /// <summary>
+ /// The is initialized
+ /// </summary>
private bool _isInitialized;
+ /// <summary>
+ /// Gets the module name.
+ /// </summary>
public string Name => "Synchronization";
+ /// <summary>
+ /// Gets the module description.
+ /// </summary>
public string Description => "Perform local to local or remote to local database synchronization.";
+ /// <summary>
+ /// Gets the module cover image.
+ /// </summary>
public BitmapSource Image => ResourceHelper.GetImageFromResources("Images/synchronization.jpg");
+ /// <summary>
+ /// Gets the module entry point view.
+ /// </summary>
public FrameworkElement MainView => new MainView();
+ /// <summary>
+ /// Gets a value indicating whether this module has been initialized.
+ /// </summary>
public bool IsInitialized => _isInitialized;
+ /// <summary>
+ /// Gets the permission required to see and load this module.
+ /// </summary>
public Permissions Permission => Permissions.RunSynchronizationModule;
+ /// <summary>
+ /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+ /// </summary>
public void Dispose()
{
//Dispose...
}
+ /// <summary>
+ /// Perform any operations required to initialize this module.
+ /// </summary>
public void Initialize()
{
if (!_isInitialized)
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/ViewModels/DirectSynchronizationViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/ViewModels/DirectSynchronizationViewVM.cs
index 5ea6e7aec..9a6c921d4 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/ViewModels/DirectSynchronizationViewVM.cs
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/ViewModels/DirectSynchronizationViewVM.cs
@@ -23,6 +23,10 @@ using Tango.Synchronization.Remote;
namespace Tango.MachineStudio.Synchronization.ViewModels
{
+ /// <summary>
+ /// Represents the 'Direct Synchronization' view model.
+ /// </summary>
+ /// <seealso cref="Tango.SharedUI.ViewModel" />
public class DirectSynchronizationViewVM : ViewModel
{
private SyncNavigationManager _navigation;
@@ -32,8 +36,14 @@ namespace Tango.MachineStudio.Synchronization.ViewModels
private INotificationProvider _notification;
private String _comparedSerialNumber;
- public IStudioApplicationManager ApplicationManager { get; set; }
+ #region Constructors
+ /// <summary>
+ /// Initializes a new instance of the <see cref="DirectSynchronizationViewVM"/> class.
+ /// </summary>
+ /// <param name="applicationManager">The application manager.</param>
+ /// <param name="navigation">The navigation.</param>
+ /// <param name="notification">The notification.</param>
public DirectSynchronizationViewVM(IStudioApplicationManager applicationManager, SyncNavigationManager navigation, INotificationProvider notification)
{
ApplicationManager = applicationManager;
@@ -49,6 +59,8 @@ namespace Tango.MachineStudio.Synchronization.ViewModels
CommitAllCommand = new RelayCommand(Synchronize, (x) => Differences.Count > 0 && !IsWorking && SelectedMachine != null);
}
+ #endregion
+
#region Commands
/// <summary>
@@ -90,6 +102,8 @@ namespace Tango.MachineStudio.Synchronization.ViewModels
#region Properties
+ public IStudioApplicationManager ApplicationManager { get; set; }
+
private bool _isWorking;
/// <summary>
/// Gets or sets a value indicating whether this instance is working.
@@ -148,6 +162,9 @@ namespace Tango.MachineStudio.Synchronization.ViewModels
#region Private Methods
+ /// <summary>
+ /// Compares the selected machine against the remote database.
+ /// </summary>
private void Compare()
{
if (SelectedMachine.SerialNumber != ApplicationManager.ConnectedMachine.As<ExternalBridgeTcpClient>().SerialNumber)
@@ -236,6 +253,9 @@ namespace Tango.MachineStudio.Synchronization.ViewModels
});
}
+ /// <summary>
+ /// Synchronizes the selected machine with the remote database.
+ /// </summary>
private void Synchronize()
{
if (IsClearMachine)
@@ -313,11 +333,19 @@ namespace Tango.MachineStudio.Synchronization.ViewModels
});
}
+ /// <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));
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..41cf94b96 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
@@ -19,6 +19,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;
@@ -168,6 +172,9 @@ namespace Tango.MachineStudio.Synchronization.ViewModels
#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,6 +212,9 @@ 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));
@@ -248,6 +258,9 @@ namespace Tango.MachineStudio.Synchronization.ViewModels
});
}
+ /// <summary>
+ /// Commits the selected difference.
+ /// </summary>
private void Commit()
{
Task.Factory.StartNew(() =>
@@ -277,6 +290,9 @@ namespace Tango.MachineStudio.Synchronization.ViewModels
});
}
+ /// <summary>
+ /// Commits all the differences.
+ /// </summary>
private void CommitAll()
{
Task.Factory.StartNew(() =>
@@ -314,6 +330,9 @@ namespace Tango.MachineStudio.Synchronization.ViewModels
});
}
+ /// <summary>
+ /// Browse for slave database file.
+ /// </summary>
private void BrowseSlaveDB()
{
String file = BrowseForFilePath();
@@ -325,6 +344,9 @@ namespace Tango.MachineStudio.Synchronization.ViewModels
}
}
+ /// <summary>
+ /// Browse for master database file.
+ /// </summary>
private void BrowseMasterDB()
{
String file = BrowseForFilePath();
@@ -336,6 +358,9 @@ namespace Tango.MachineStudio.Synchronization.ViewModels
}
}
+ /// <summary>
+ /// Browse for database file.
+ /// </summary>
private String BrowseForFilePath()
{
OpenFileDialog dlg = new OpenFileDialog();
@@ -348,11 +373,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));
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/ViewModels/MainViewVM.cs
index c392aee1a..48a5c64bd 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/ViewModels/MainViewVM.cs
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/ViewModels/MainViewVM.cs
@@ -8,8 +8,15 @@ using Tango.SharedUI;
namespace Tango.MachineStudio.Synchronization.ViewModels
{
+ /// <summary>
+ /// Represents the synchronization module main view, view model.
+ /// </summary>
+ /// <seealso cref="Tango.SharedUI.ViewModel" />
public class MainViewVM : ViewModel
{
+ /// <summary>
+ /// Initializes a new instance of the <see cref="MainViewVM"/> class.
+ /// </summary>
public MainViewVM()
{
MainViewLogger logger = new MainViewLogger();
@@ -33,23 +40,49 @@ namespace Tango.MachineStudio.Synchronization.ViewModels
#region Custom Logger
+ /// <summary>
+ /// Represents a custom logger.
+ /// </summary>
+ /// <seealso cref="Tango.Logging.ILogger" />
public class MainViewLogger : ILogger
{
+ /// <summary>
+ /// Gets or sets a value indicating whether this <see cref="T:Tango.Logging.ILogger" /> is enabled.
+ /// </summary>
public bool Enabled { get; set; }
+
+ /// <summary>
+ /// Gets or sets a value indicating whether this <see cref="T:Tango.Logging.ILogger" /> will be notified about logs without waiting for the logs queue.
+ /// </summary>
public bool Immediate { get; set; }
+
+ /// <summary>
+ /// Occurs when a new log item is available.
+ /// </summary>
public event Action<String> NewLog;
+ /// <summary>
+ /// Initializes a new instance of the <see cref="MainViewLogger"/> class.
+ /// </summary>
public MainViewLogger()
{
Enabled = true;
Immediate = true;
}
+ /// <summary>
+ /// Called when a new library exception is available.
+ /// </summary>
+ /// <param name="output">The output.</param>
public void OnError(LogItemBase output)
{
NewLog?.Invoke(output.TimeStamp.ToTimeString() + ": " + output.GetMessage());
}
+ /// <summary>
+ /// Called when a new library trace is available.
+ /// </summary>
+ /// <param name="output">The output.</param>
public void OnTrace(LogItemBase output)
{
NewLog?.Invoke(output.TimeStamp.ToTimeString() + ": " + output.GetMessage());
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/ViewModels/MenuViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/ViewModels/MenuViewVM.cs
index 0fe510f36..efc6ec900 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/ViewModels/MenuViewVM.cs
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/ViewModels/MenuViewVM.cs
@@ -9,10 +9,18 @@ using Tango.SharedUI;
namespace Tango.MachineStudio.Synchronization.ViewModels
{
+ /// <summary>
+ /// Represents the synchronization module main menu view, view model.
+ /// </summary>
+ /// <seealso cref="Tango.SharedUI.ViewModel" />
public class MenuViewVM : ViewModel
{
private SyncNavigationManager _navigation;
+ /// <summary>
+ /// Initializes a new instance of the <see cref="MenuViewVM"/> class.
+ /// </summary>
+ /// <param name="navigation">The navigation.</param>
public MenuViewVM(SyncNavigationManager navigation)
{
_navigation = navigation;
@@ -22,10 +30,19 @@ namespace Tango.MachineStudio.Synchronization.ViewModels
StartDirectRemoteSyncCommand = new RelayCommand(() => { _navigation.NavigateTo(NavigationView.DirectSynchronizationView); });
}
+ /// <summary>
+ /// Gets or sets the start local synchronize command.
+ /// </summary>
public RelayCommand StartLocalSyncCommand { get; set; }
+ /// <summary>
+ /// Gets or sets the start remote synchronize command.
+ /// </summary>
public RelayCommand StartRemoteSyncCommand { get; set; }
+ /// <summary>
+ /// Gets or sets the start direct remote synchronize command.
+ /// </summary>
public RelayCommand StartDirectRemoteSyncCommand { get; set; }
}
}
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..5ce0a9786 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
@@ -24,6 +24,11 @@ using Tango.Synchronization.Remote;
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;
@@ -158,6 +163,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 +203,9 @@ namespace Tango.MachineStudio.Synchronization.ViewModels
}
}
+ /// <summary>
+ /// Compares the remote database with the selected database file.
+ /// </summary>
private void Compare()
{
Task.Factory.StartNew(() =>
@@ -243,6 +254,9 @@ namespace Tango.MachineStudio.Synchronization.ViewModels
});
}
+ /// <summary>
+ /// Commits the selected difference.
+ /// </summary>
private void Commit()
{
Task.Factory.StartNew(() =>
@@ -274,6 +288,9 @@ namespace Tango.MachineStudio.Synchronization.ViewModels
});
}
+ /// <summary>
+ /// Commits all the differences.
+ /// </summary>
private void CommitAll()
{
Task.Factory.StartNew(() =>
@@ -325,6 +342,9 @@ namespace Tango.MachineStudio.Synchronization.ViewModels
});
}
+ /// <summary>
+ /// Browse for slave database file.
+ /// </summary>
private void BrowseSlaveDB()
{
String file = BrowseForFilePath();
@@ -336,6 +356,9 @@ namespace Tango.MachineStudio.Synchronization.ViewModels
}
}
+ /// <summary>
+ /// Browse for database file.
+ /// </summary>
private String BrowseForFilePath()
{
OpenFileDialog dlg = new OpenFileDialog();
@@ -348,16 +371,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)