diff options
| author | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2021-05-05 19:50:31 +0300 |
|---|---|---|
| committer | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2021-05-05 19:50:31 +0300 |
| commit | 8594795f820e03b988c37b9e5d9771670889074d (patch) | |
| tree | b554463c0f91161e172a4384cf2b99c91ef7e6bc /Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineManager | |
| parent | 6e7818382734e9ef0b65552bb026c6b0a4f69e4b (diff) | |
| download | Tango-8594795f820e03b988c37b9e5d9771670889074d.tar.gz Tango-8594795f820e03b988c37b9e5d9771670889074d.zip | |
Machine Manager Improvements.
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineManager')
3 files changed, 114 insertions, 65 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineManager/Models/MachineModel.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineManager/Models/MachineModel.cs index 3923ae981..4b7e94b1e 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineManager/Models/MachineModel.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineManager/Models/MachineModel.cs @@ -31,6 +31,20 @@ namespace Tango.MachineStudio.MachineManager.Models public String HardwareVersionGuid { get; set; } + private String _applicationVersion; + public String ApplicationVersion + { + get { return _applicationVersion; } + set { _applicationVersion = value; RaisePropertyChangedAuto(); } + } + + private String _firmwareVersion; + public String FirmwareVersion + { + get { return _firmwareVersion; } + set { _firmwareVersion = value; RaisePropertyChangedAuto(); } + } + private String _hardwareVersionName; public String HardwareVersionName { diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineManager/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineManager/ViewModels/MainViewVM.cs index 6acaa8423..7d8314860 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineManager/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineManager/ViewModels/MainViewVM.cs @@ -12,6 +12,7 @@ using Tango.Core.Commands; using Tango.MachineStudio.Common.Notifications; using Z.EntityFramework.Plus; using System.ComponentModel; +using Tango.BL.Enumerations; namespace Tango.MachineStudio.MachineManager.ViewModels { @@ -109,81 +110,107 @@ namespace Tango.MachineStudio.MachineManager.ViewModels { try { - SelectAll = null; - - foreach (var machine in Machines.ToList()) + using (_notification.PushTaskItem("Loading machines...")) { - machine.PropertyChanged -= Machine_PropertyChanged; - } + SelectAll = null; - using (ObservablesContext db = ObservablesContext.CreateDefault()) - { - var sites = await db.Sites.ToListAsync(); + foreach (var machine in Machines.ToList()) + { + machine.PropertyChanged -= Machine_PropertyChanged; + } + + using (ObservablesContext db = ObservablesContext.CreateDefault()) + { + var sites = await db.Sites.ToListAsync(); - var machines = await db.Machines - .Include(x => x.Organization.Name) - .Include(x => x.Configuration.HardwareVersion.Name) - .Include(x => x.Configuration.HardwareVersion.Version) - .Include(x => x.Configuration.HardwareVersion.Guid) - .Select(x => new + var machines = await db.Machines + .Include(x => x.Organization.Name) + .Include(x => x.Configuration.HardwareVersion.Name) + .Include(x => x.Configuration.HardwareVersion.Version) + .Include(x => x.Configuration.HardwareVersion.Guid) + .Select(x => new + { + x.Guid, + x.SerialNumber, + x.Name, + x.SuspendVersionUpdate, + x.SetupFirmware, + x.SetupFpga, + x.ConfigurationGuid, + HardwareVersionGuid = x.Configuration.HardwareVersion.Guid, + HardwareVersionName = x.Configuration.HardwareVersion.Name, + HardwareVersionVersion = x.Configuration.HardwareVersion.Version, + OrganizationName = x.Organization.Name, + x.SiteGuid + }).ToListAsync(); + + var models = new List<MachineModel>(); + + foreach (var machine in machines) { - x.Guid, - x.SerialNumber, - x.Name, - x.SuspendVersionUpdate, - x.SetupFirmware, - x.SetupFpga, - x.ConfigurationGuid, - HardwareVersionGuid = x.Configuration.HardwareVersion.Guid, - HardwareVersionName = x.Configuration.HardwareVersion.Name, - HardwareVersionVersion = x.Configuration.HardwareVersion.Version, - OrganizationName = x.Organization.Name, - x.SiteGuid - }).ToListAsync(); + MachineModel model = new MachineModel(); + model.Guid = machine.Guid; + model.SerialNumber = machine.SerialNumber; + model.Name = machine.Name; + model.EnableFirmwareUpgrade = machine.SetupFirmware; + model.EnableSoftwareUpdate = !machine.SuspendVersionUpdate; + model.ConfigurationGuid = machine.ConfigurationGuid; + model.HardwareVersionGuid = machine.HardwareVersionGuid; + model.HardwareVersionName = machine.HardwareVersionName; + model.HardwareVersionVersion = machine.HardwareVersionVersion; + model.OrganizationName = machine.OrganizationName; + model.Site = sites.FirstOrDefault(x => x.Guid == machine.SiteGuid)?.Name; + models.Add(model); + } - var models = new List<MachineModel>(); + if (Filter.IsNotNullOrEmpty()) + { + var filter = Filter.ToLower(); - foreach (var machine in machines) - { - MachineModel model = new MachineModel(); - model.Guid = machine.Guid; - model.SerialNumber = machine.SerialNumber; - model.Name = machine.Name; - model.EnableFirmwareUpgrade = machine.SetupFirmware; - model.EnableSoftwareUpdate = !machine.SuspendVersionUpdate; - model.ConfigurationGuid = machine.ConfigurationGuid; - model.HardwareVersionGuid = machine.HardwareVersionGuid; - model.HardwareVersionName = machine.HardwareVersionName; - model.HardwareVersionVersion = machine.HardwareVersionVersion; - model.OrganizationName = machine.OrganizationName; - model.Site = sites.FirstOrDefault(x => x.Guid == machine.SiteGuid)?.Name; + models = models.Where(x => + x.SerialNumber.ToLower().StartsWith(filter) || + x.Name.ToLower().StartsWith(filter) || + x.OrganizationName.ToLower().StartsWith(filter) || + x.Site.ToStringOrEmpty().ToLower().StartsWith(filter) + ).ToList(); + } - models.Add(model); - } + foreach (var model in models) + { + var lastUpdate = await db.TangoUpdates.Where( - if (Filter.IsNotNullOrEmpty()) - { - var filter = Filter.ToLower(); + x => x.MachineGuid == model.Guid && + (x.Status == (int)TangoUpdateStatuses.SetupCompleted || + x.Status == (int)TangoUpdateStatuses.UpdateCompleted || + x.Status == (int)TangoUpdateStatuses.OfflineUpdateCompleted || + x.Status == (int)TangoUpdateStatuses.OfflineFirmwareUpgradeCompleted)) + .OrderByDescending(x => x.LastUpdated) + .Select(x => new + { + x.ApplicationVersion, + x.FirmwareVersion + }) + .FirstOrDefaultAsync(); - models = models.Where(x => - x.SerialNumber.ToLower().StartsWith(filter) || - x.Name.ToLower().StartsWith(filter) || - x.OrganizationName.ToLower().StartsWith(filter) || - x.Site.ToStringOrEmpty().ToLower().StartsWith(filter) - ).ToList(); - } + if (lastUpdate != null) + { + model.ApplicationVersion = lastUpdate.ApplicationVersion; + model.FirmwareVersion = lastUpdate.FirmwareVersion; + } + } - HardwareVersions = (await db.HardwareVersions.ToListAsync()).OrderByDescending(x => x.Version).ToList(); + HardwareVersions = (await db.HardwareVersions.ToListAsync()).OrderByDescending(x => x.Version).ToList(); - SelectedHardwareVersion = null; - EnableSoftwareUpdate = null; - EnableFirmwareUpgrade = null; + SelectedHardwareVersion = null; + EnableSoftwareUpdate = null; + EnableFirmwareUpgrade = null; - Machines = models; + Machines = models; - foreach (var machine in Machines.ToList()) - { - machine.PropertyChanged += Machine_PropertyChanged; + foreach (var machine in Machines.ToList()) + { + machine.PropertyChanged += Machine_PropertyChanged; + } } } } @@ -277,6 +304,8 @@ namespace Tango.MachineStudio.MachineManager.ViewModels try { + IsFree = false; + using (_notification.PushTaskItem("Applying changes...")) { if (Machines == null || Machines.Count(x => x.IsSelected) == 0) @@ -322,7 +351,7 @@ namespace Tango.MachineStudio.MachineManager.ViewModels } } - await LoadMachines(); + await LoadMachines(); } } catch (Exception ex) @@ -330,6 +359,10 @@ namespace Tango.MachineStudio.MachineManager.ViewModels LogManager.Log(ex, "Error applying changes."); _notification.ShowError($"Error applying changes.\n{ex.FlattenMessage()}"); } + finally + { + IsFree = true; + } } } } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineManager/Views/MainView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineManager/Views/MainView.xaml index 3af1ba9dd..cf2fee188 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineManager/Views/MainView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineManager/Views/MainView.xaml @@ -17,7 +17,7 @@ <TextBlock FontSize="40">Machine Manager</TextBlock> <StackPanel Orientation="Horizontal" VerticalAlignment="Bottom" Margin="0 40 0 0"> - <materialDesign:PackIcon VerticalAlignment="Center" Kind="BarcodeScan" Width="32" Height="32" /> + <materialDesign:PackIcon VerticalAlignment="Center" Kind="Magnify" Width="32" Height="32" /> <TextBox Width="500" FontSize="20" Margin="10 0 0 0" materialDesign:HintAssist.Hint="Organization / Serial Number / Name / Site" Text="{Binding Filter,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged,Delay=500}"></TextBox> </StackPanel> </StackPanel> @@ -57,6 +57,8 @@ <DataGridTextColumn Header="ORGANIZATION" Binding="{Binding OrganizationName}" Width="Auto" IsReadOnly="True" /> <DataGridTextColumn Header="SITE" Binding="{Binding Site}" Width="Auto" IsReadOnly="True" /> <DataGridTextColumn Header="HW" Binding="{Binding HardwareVersion}" Width="Auto" IsReadOnly="True" /> + <DataGridTextColumn Header="APPLICATION" Binding="{Binding ApplicationVersion}" Width="Auto" IsReadOnly="True" /> + <DataGridTextColumn Header="FIRMWARE" Binding="{Binding FirmwareVersion}" Width="Auto" IsReadOnly="True" /> <DataGridTemplateColumn Header="UPDATE SOFTWARE" IsReadOnly="True"> <DataGridTemplateColumn.CellTemplate> <DataTemplate> @@ -77,7 +79,7 @@ </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> - <DataGridTemplateColumn Header="FIRMWARE UPDATE" IsReadOnly="True"> + <DataGridTemplateColumn Header="UPDATE FIRMWARE" IsReadOnly="True"> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <materialDesign:PackIcon HorizontalAlignment="Center"> |
