aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MachineUpdatesViewVM.cs
diff options
context:
space:
mode:
authorVictoria Plitt <Victoria.Plitt@twine-s.com>2019-12-18 13:27:02 +0200
committerVictoria Plitt <Victoria.Plitt@twine-s.com>2019-12-18 13:27:02 +0200
commit41129873d38034c5679eeaf46f48e4f67fd38ba2 (patch)
tree94109a9602e91bcf7f114e3491bc8018e60bef4c /Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MachineUpdatesViewVM.cs
parent70e3f2699a500666d1ca4e4d5db2dbaafb339e80 (diff)
parenta61a911d1ebde107ba7bf210af7e753e692d93e2 (diff)
downloadTango-41129873d38034c5679eeaf46f48e4f67fd38ba2.tar.gz
Tango-41129873d38034c5679eeaf46f48e4f67fd38ba2.zip
Merge branch 'master' of https://twinetfs.visualstudio.com/Tango/_git/Tango
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MachineUpdatesViewVM.cs')
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MachineUpdatesViewVM.cs60
1 files changed, 49 insertions, 11 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MachineUpdatesViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MachineUpdatesViewVM.cs
index 7ff64c505..e1e9ee561 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MachineUpdatesViewVM.cs
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MachineUpdatesViewVM.cs
@@ -8,6 +8,7 @@ using System.Windows.Data;
using Tango.BL;
using Tango.BL.Builders;
using Tango.BL.Entities;
+using Tango.Core.Commands;
using Tango.MachineStudio.Common.Notifications;
using Tango.MachineStudio.MachineDesigner.Views;
using Tango.SharedUI;
@@ -17,6 +18,8 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels
public class MachineUpdatesViewVM : ViewModel
{
private INotificationProvider _notification;
+ private ObservablesContext _context;
+ private const int MAX_UPDATE_ITEMS = 100;
#region Properties
@@ -70,6 +73,19 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels
set { _displayDatabaseUpdates = value; RaisePropertyChangedAuto(); OnFilterChanged(); }
}
+ private bool _displaySynchronizations;
+ public bool DisplaySynchronizations
+ {
+ get { return _displaySynchronizations; }
+ set { _displaySynchronizations = value; RaisePropertyChangedAuto(); OnFilterChanged(); }
+ }
+
+ #endregion
+
+ #region Commands
+
+ public RelayCommand RefreshCommand { get; set; }
+
#endregion
#region Constructors
@@ -79,6 +95,9 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels
DisplayApplicationUpdates = true;
DisplayMachineSetups = true;
DisplayDatabaseUpdates = true;
+ DisplaySynchronizations = true;
+
+ RefreshCommand = new RelayCommand(Refresh, () => IsFree);
}
public MachineUpdatesViewVM(INotificationProvider notificationProvider) : this()
@@ -92,17 +111,36 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels
public async Task Init(Machine machine, ObservablesContext context)
{
- Machine = machine;
- Updates = (await new TangoUpdatesCollectionBuilder(context).Set(x => x.MachineGuid == machine.Guid).BuildAsync()).OrderByDescending(x => x.StartDate).ToList();
- UpdatesView = CollectionViewSource.GetDefaultView(Updates);
- UpdatesView.Filter = UpdatesFilter;
- OnFilterChanged();
+ try
+ {
+ _context = context;
+ Machine = machine;
+ Updates = (await new TangoUpdatesCollectionBuilder(context).Set(x => x.MachineGuid == machine.Guid).Query(x => x.OrderByDescending(y => y.StartDate).Take(MAX_UPDATE_ITEMS)).BuildAsync()).ToList();
+ UpdatesView = CollectionViewSource.GetDefaultView(Updates);
+ UpdatesView.Filter = UpdatesFilter;
+ OnFilterChanged();
+ }
+ catch (Exception ex)
+ {
+ LogManager.Log(ex, "Error loading machine updates.");
+ _notification.ShowError($"An error occurred while loading the history of machine updates.\n{ex.FlattenMessage()}");
+ }
}
#endregion
#region Private Methods
+ private async void Refresh()
+ {
+ IsFree = false;
+ using (_notification.PushTaskItem("Refreshing machine updates..."))
+ {
+ await Init(Machine, _context);
+ }
+ IsFree = true;
+ }
+
private void OnFilterChanged()
{
if (UpdatesView != null)
@@ -119,6 +157,7 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels
if (!DisplayMachineSetups && update.IsSetup) return false;
if (!DisplayApplicationUpdates && update.IsUpdate) return false;
if (!DisplayDatabaseUpdates && update.IsDataBase) return false;
+ if (!DisplaySynchronizations && update.IsSynchronization) return false;
return true;
}
else
@@ -129,12 +168,11 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels
private void OnSelectedUpdateChanged()
{
- if (SelectedUpdate == null) return;
-
- var selectedUpdate = SelectedUpdate;
- SelectedUpdate = null;
-
- _notification.ShowModalDialog<MachineUpdateDetailsDialogVM, MachineUpdateDetailsDialog>(new MachineUpdateDetailsDialogVM() { Update = selectedUpdate }, (vm) => { }, () => { });
+ if (SelectedUpdate != null && SelectedUpdate.ApplicationVersion != "Fake")
+ {
+ _notification.ShowModalDialog<MachineUpdateDetailsDialogVM, MachineUpdateDetailsDialog>(new MachineUpdateDetailsDialogVM() { Update = SelectedUpdate }, (vm) => { }, () => { });
+ SelectedUpdate = new TangoUpdate() { ApplicationVersion = "Fake"};
+ }
}
#endregion