diff options
| author | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-01-14 17:23:12 +0200 |
|---|---|---|
| committer | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-01-14 17:23:12 +0200 |
| commit | bf2bc8f2b1ad463bac3e4354b842a87c2e7b13eb (patch) | |
| tree | ba45c35d714e639c4331f7d1d13f91328325c933 /Software/Visual_Studio/MachineStudio/Modules | |
| parent | 0974fdfcbe68117f7b01c8e4b7364d0abfd08829 (diff) | |
| download | Tango-bf2bc8f2b1ad463bac3e4354b842a87c2e7b13eb.tar.gz Tango-bf2bc8f2b1ad463bac3e4354b842a87c2e7b13eb.zip | |
Added code comments for:
MachineStudio.Synchronization
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules')
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) |
