aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels')
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs25
1 files changed, 22 insertions, 3 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs
index b75a84a6c..8b0a89336 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs
@@ -1482,7 +1482,14 @@ namespace Tango.MachineStudio.Developer.ViewModels
{
LogManager.Log("Invalidating liquid factors, process parameters and process group history...");
- _selectedRML = new RmlBuilder(_activeJobDbContext).Set(SelectedRML).WithAllParametersGroup().WithCAT(SelectedMachine.Guid).WithCCT().WithLiquidFactors().WithMediaProperties().Build();
+ if (_selectedRML != ActiveJob.Rml)
+ {
+ _selectedRML = new RmlBuilder(_activeJobDbContext).Set(SelectedRML).WithAllParametersGroup().WithCAT(SelectedMachine.Guid).WithCCT().WithLiquidFactors().Build();
+ }
+ else
+ {
+ _selectedRML = ActiveJob.Rml;
+ }
if (_selectedRML.Ccts.Count == 0)
{
@@ -1688,6 +1695,9 @@ namespace Tango.MachineStudio.Developer.ViewModels
WindingMethods = _activeJobDbContext.WindingMethods.ToObservableCollection();
SpoolTypes = _activeJobDbContext.SpoolTypes.ToObservableCollection();
+ LogManager.Log("Loading machine spools...");
+ _activeJobDbContext.Spools.Where(x => x.MachineGuid == SelectedMachine.Guid).Load();
+
LogManager.Log("Setting active job...");
ActiveJob = new JobBuilder(_activeJobDbContext).Set(SelectedMachineJob.Guid).WithUser().WithSegments().WithBrushStops().WithConfiguration().WithRML().Build();
@@ -1708,7 +1718,7 @@ namespace Tango.MachineStudio.Developer.ViewModels
LogManager.Log("Setting selected segment...");
- _selectedSegment = ActiveJob.Segments.FirstOrDefault();
+ _selectedSegment = ActiveJob.OrderedSegments.FirstOrDefault();
ActiveJob.LengthChanged -= ActiveJob_LengthChanged;
ActiveJob.LengthChanged += ActiveJob_LengthChanged;
@@ -1838,6 +1848,11 @@ namespace Tango.MachineStudio.Developer.ViewModels
{
await _machineDbContext.Jobs.Where(x => x.MachineGuid == SelectedMachine.Guid).Include(x => x.User).Include(x => x.User.Contact).LoadAsync();
+ foreach (var job in SelectedMachine.Jobs)
+ {
+ await job.Reload(_machineDbContext);
+ }
+
await _machineDbContext.ColorSpaces.LoadAsync();
await Task.Factory.StartNew(() =>
@@ -2153,10 +2168,14 @@ namespace Tango.MachineStudio.Developer.ViewModels
{
LogManager.LogFormat("Duplicating {0} segments...", SelectedSegments.Count);
+ int start_index = SelectedSegments.Max(x => x.SegmentIndex);
+
+ ActiveJob.Segments.Where(x => x.SegmentIndex > start_index).ToList().ForEach(x => x.SegmentIndex = x.SegmentIndex + SelectedSegments.Count);
+
foreach (var segment in SelectedSegments.OrderBy(x => x.SegmentIndex))
{
var cloned = segment.Clone();
- cloned.SegmentIndex = ActiveJob.Segments.Max(x => x.SegmentIndex) + 1;
+ cloned.SegmentIndex = start_index++;
ActiveJob.Segments.Add(cloned);
SelectedSegment = cloned;
}