aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineManager
diff options
context:
space:
mode:
authorRoy Ben Shabat <Roy.mail.net@gmail.com>2021-05-04 19:16:53 +0300
committerRoy Ben Shabat <Roy.mail.net@gmail.com>2021-05-04 19:16:53 +0300
commit6e7818382734e9ef0b65552bb026c6b0a4f69e4b (patch)
treef2b156e4f2d753304ec34f5173b9d3abece61800 /Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineManager
parentbfcc978160dfdc00256cbbe11551cd32be459dda (diff)
downloadTango-6e7818382734e9ef0b65552bb026c6b0a4f69e4b.tar.gz
Tango-6e7818382734e9ef0b65552bb026c6b0a4f69e4b.zip
Added new Machine Manager Role and Permission
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineManager')
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineManager/MachineManagerModule.cs2
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineManager/ViewModels/MainViewVM.cs218
2 files changed, 121 insertions, 99 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineManager/MachineManagerModule.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineManager/MachineManagerModule.cs
index a55e332cf..c19a5c45e 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineManager/MachineManagerModule.cs
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineManager/MachineManagerModule.cs
@@ -50,7 +50,7 @@ namespace Tango.MachineStudio.MachineManager
{
get
{
- return Permissions.RunMachineStudio;
+ return Permissions.RunMachineManagerModule;
}
}
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 b97f5e1d9..6acaa8423 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
@@ -11,6 +11,7 @@ using Tango.BL.Entities;
using Tango.Core.Commands;
using Tango.MachineStudio.Common.Notifications;
using Z.EntityFramework.Plus;
+using System.ComponentModel;
namespace Tango.MachineStudio.MachineManager.ViewModels
{
@@ -106,86 +107,94 @@ namespace Tango.MachineStudio.MachineManager.ViewModels
private async Task LoadMachines()
{
- SelectAll = null;
-
- foreach (var machine in Machines.ToList())
+ try
{
- 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;
+ }
- 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();
+ using (ObservablesContext db = ObservablesContext.CreateDefault())
+ {
+ var sites = await db.Sites.ToListAsync();
- var models = new List<MachineModel>();
+ 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();
- 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;
+ var models = new List<MachineModel>();
- models.Add(model);
- }
+ 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;
- if (Filter.IsNotNullOrEmpty())
- {
- var filter = Filter.ToLower();
+ models.Add(model);
+ }
- 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 (Filter.IsNotNullOrEmpty())
+ {
+ var filter = Filter.ToLower();
+
+ 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();
+ }
- 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;
+ }
}
}
+ catch (Exception ex)
+ {
+ LogManager.Log(ex, "Error loading machines.");
+ _notification.ShowError($"Error loading machines.\n{ex.FlattenMessage()}");
+ }
}
- private void Machine_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
+ private void Machine_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
if (_preventChange) return;
@@ -264,50 +273,63 @@ namespace Tango.MachineStudio.MachineManager.ViewModels
private async void Apply()
{
- if (Machines == null || Machines.Count(x => x.IsSelected) == 0)
- {
- _notification.ShowInfo("No machines selected");
- return;
- }
+ if (!_notification.ShowQuestion($"You are about to modify {Machines.Count(x => x.IsSelected)} machines. Are you sure?")) return;
- using (ObservablesContext db = ObservablesContext.CreateDefault())
+ try
{
- var machines = Machines.Where(x => x.IsSelected).ToList();
-
- var guids = machines.Select(x => x.Guid).ToArray();
-
- if (EnableSoftwareUpdate != null)
+ using (_notification.PushTaskItem("Applying changes..."))
{
- await db.Machines.Where(x => guids.Contains(x.Guid)).UpdateAsync(x =>
- new Machine()
+ if (Machines == null || Machines.Count(x => x.IsSelected) == 0)
{
- SuspendVersionUpdate = !EnableSoftwareUpdate.Value
- });
- }
+ _notification.ShowInfo("No machines selected");
+ return;
+ }
- if (EnableFirmwareUpgrade != null)
- {
- await db.Machines.Where(x => guids.Contains(x.Guid)).UpdateAsync(x =>
- new Machine()
+ using (ObservablesContext db = ObservablesContext.CreateDefault())
{
- SetupFirmware = EnableFirmwareUpgrade.Value,
- SetupFpga = EnableFirmwareUpgrade.Value,
- });
- }
+ var machines = Machines.Where(x => x.IsSelected).ToList();
- if (SelectedHardwareVersion != null)
- {
- guids = machines.Select(x => x.ConfigurationGuid).ToArray();
+ var guids = machines.Select(x => x.Guid).ToArray();
- await db.Configurations.Where(x => guids.Contains(x.Guid)).UpdateAsync(x =>
- new Configuration()
- {
- HardwareVersionGuid = SelectedHardwareVersion.Guid
- });
+ if (EnableSoftwareUpdate != null)
+ {
+ await db.Machines.Where(x => guids.Contains(x.Guid)).UpdateAsync(x =>
+ new Machine()
+ {
+ SuspendVersionUpdate = !EnableSoftwareUpdate.Value
+ });
+ }
+
+ if (EnableFirmwareUpgrade != null)
+ {
+ await db.Machines.Where(x => guids.Contains(x.Guid)).UpdateAsync(x =>
+ new Machine()
+ {
+ SetupFirmware = EnableFirmwareUpgrade.Value,
+ SetupFpga = EnableFirmwareUpgrade.Value,
+ });
+ }
+
+ if (SelectedHardwareVersion != null)
+ {
+ guids = machines.Select(x => x.ConfigurationGuid).ToArray();
+
+ await db.Configurations.Where(x => guids.Contains(x.Guid)).UpdateAsync(x =>
+ new Configuration()
+ {
+ HardwareVersionGuid = SelectedHardwareVersion.Guid
+ });
+ }
+ }
+
+ await LoadMachines();
}
}
-
- await LoadMachines();
+ catch (Exception ex)
+ {
+ LogManager.Log(ex, "Error applying changes.");
+ _notification.ShowError($"Error applying changes.\n{ex.FlattenMessage()}");
+ }
}
}
}