diff options
| author | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2021-05-04 19:16:53 +0300 |
|---|---|---|
| committer | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2021-05-04 19:16:53 +0300 |
| commit | 6e7818382734e9ef0b65552bb026c6b0a4f69e4b (patch) | |
| tree | f2b156e4f2d753304ec34f5173b9d3abece61800 /Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineManager/ViewModels | |
| parent | bfcc978160dfdc00256cbbe11551cd32be459dda (diff) | |
| download | Tango-6e7818382734e9ef0b65552bb026c6b0a4f69e4b.tar.gz Tango-6e7818382734e9ef0b65552bb026c6b0a4f69e4b.zip | |
Added new Machine Manager Role and Permission
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineManager/ViewModels')
| -rw-r--r-- | Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineManager/ViewModels/MainViewVM.cs | 218 |
1 files changed, 120 insertions, 98 deletions
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()}"); + } } } } |
