aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner')
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MachineUpdatesViewVM.cs48
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineUpdateDetailsDialog.xaml3
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineUpdatesView.xaml22
3 files changed, 61 insertions, 12 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..3ac3110bb 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,7 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels
public class MachineUpdatesViewVM : ViewModel
{
private INotificationProvider _notification;
+ private ObservablesContext _context;
#region Properties
@@ -70,6 +72,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 +94,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 +110,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).BuildAsync()).OrderByDescending(x => x.StartDate).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 +156,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
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineUpdateDetailsDialog.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineUpdateDetailsDialog.xaml
index 9d60d36f8..804ee456c 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineUpdateDetailsDialog.xaml
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineUpdateDetailsDialog.xaml
@@ -40,6 +40,9 @@
<DataTrigger Binding="{Binding IsDataBase}" Value="True">
<Setter Property="Kind" Value="Database"></Setter>
</DataTrigger>
+ <DataTrigger Binding="{Binding IsSynchronization}" Value="True">
+ <Setter Property="Kind" Value="Sync"></Setter>
+ </DataTrigger>
<DataTrigger Binding="{Binding IsStarted}" Value="True">
<Setter Property="Foreground" Value="{StaticResource OrangeBrush}"></Setter>
</DataTrigger>
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineUpdatesView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineUpdatesView.xaml
index d9ea2cb44..8d1ff8ec8 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineUpdatesView.xaml
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineUpdatesView.xaml
@@ -18,9 +18,9 @@
<converters:DateTimeUTCToShortDateTimeConverter x:Key="DateTimeUTCToShortDateTimeConverter" />
<converters:StringToOneLineConverter x:Key="StringToOneLineConverter" />
</UserControl.Resources>
-
+
<Grid Margin="20" DataContext="{Binding MachineUpdatesViewVM}">
- <DockPanel>
+ <DockPanel IsEnabled="{Binding IsFree}">
<Grid DockPanel.Dock="Bottom">
</Grid>
@@ -34,11 +34,16 @@
<local:MachineView Margin="30 80 0 0" DataContext="{Binding Machine}" IsHitTestVisible="False" VerticalAlignment="Top" Height="241" />
<DockPanel Grid.Column="1" Margin="50 100 50 50">
- <StackPanel DockPanel.Dock="Bottom" Orientation="Horizontal" Height="50">
- <CheckBox IsChecked="{Binding DisplayMachineSetups}">Machine Setups</CheckBox>
- <CheckBox IsChecked="{Binding DisplayApplicationUpdates}" Margin="30 0">Software Updates</CheckBox>
- <CheckBox IsChecked="{Binding DisplayDatabaseUpdates}">Database Updates</CheckBox>
- </StackPanel>
+ <Grid DockPanel.Dock="Bottom" Height="50">
+ <StackPanel Orientation="Horizontal">
+ <CheckBox IsChecked="{Binding DisplayMachineSetups}">Machine Setups</CheckBox>
+ <CheckBox IsChecked="{Binding DisplayApplicationUpdates}" Margin="30 0">Software Updates</CheckBox>
+ <CheckBox IsChecked="{Binding DisplayDatabaseUpdates}">Database Updates</CheckBox>
+ <CheckBox IsChecked="{Binding DisplaySynchronizations}" Margin="30 0 0 0">Synchronizations</CheckBox>
+ </StackPanel>
+
+ <Button Command="{Binding RefreshCommand}" HorizontalAlignment="Right" Width="150" Style="{StaticResource MaterialDesignFlatButton}">REFRESH</Button>
+ </Grid>
<Grid>
<DataGrid Margin="0 0 0 10" SelectionUnit="FullRow" BorderBrush="{StaticResource borderBrush }" BorderThickness="1" Background="{StaticResource TransparentBackgroundBrush}" AlternatingRowBackground="{StaticResource Transparent200}" AutoGenerateColumns="False" CanUserAddRows="False" CanUserDeleteRows="False" IsReadOnly="True" ItemsSource="{Binding Updates}" SelectedItem="{Binding SelectedUpdate}">
<DataGrid.CellStyle>
@@ -66,6 +71,9 @@
<DataTrigger Binding="{Binding IsDataBase}" Value="True">
<Setter Property="Kind" Value="Database"></Setter>
</DataTrigger>
+ <DataTrigger Binding="{Binding IsSynchronization}" Value="True">
+ <Setter Property="Kind" Value="Sync"></Setter>
+ </DataTrigger>
<DataTrigger Binding="{Binding IsStarted}" Value="True">
<Setter Property="Foreground" Value="{StaticResource OrangeBrush}"></Setter>
</DataTrigger>