From 41b950b3f3f7fa0384cccd13ed4ef38119bbcbcf Mon Sep 17 00:00:00 2001 From: Roy Ben Shabat Date: Wed, 18 Dec 2019 15:52:25 +0200 Subject: Fixed ContinueThreadLoadingResponse. Refactored ActionLog Difference data structure to node tree. --- .../ViewModels/MainViewVM.cs | 23 +++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels') 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 d598e2458..4b276462e 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 @@ -1928,7 +1928,7 @@ namespace Tango.MachineStudio.Developer.ViewModels _activeJobDbContext.SaveChanges(); var afterJobDTO = JobDTO.FromObservable(ActiveJob); - _actionLogManager.InsertLog(ActionLogType.JobSaved, AuthenticationProvider.CurrentUser, _beforeSaveJobDTO.Name, _beforeSaveJobDTO, afterJobDTO, "Job saved from research module in Machine Studio.").GetAwaiter().GetResult(); + _actionLogManager.InsertLog(ActionLogType.JobSaved, AuthenticationProvider.CurrentUser, _beforeSaveJobDTO.Name, _beforeSaveJobDTO, afterJobDTO, "Job saved from research module in Machine Studio."); _beforeSaveJobDTO = afterJobDTO; _machineDbContext.Entry(SelectedMachineJob).Reload(); @@ -2191,6 +2191,8 @@ namespace Tango.MachineStudio.Developer.ViewModels { if (_notification.ShowQuestion("Are you sure you want to delete the selected jobs?")) { + var jobsToReport = SelectedJobs.Select(x => JobDTO.FromObservable(x)).ToList(); + LogManager.Log(String.Format("Removing {0} jobs...", SelectedJobs.Count)); SelectedJobs.ToList().ForEach(x => { @@ -2202,6 +2204,11 @@ namespace Tango.MachineStudio.Developer.ViewModels LogManager.Log("Saving selected machine to database..."); await SelectedMachine.SaveAsync(_machineDbContext); } + + foreach (var job in jobsToReport) + { + _actionLogManager.InsertLog(ActionLogType.JobDeleted, AuthenticationProvider.CurrentUser, job.Name, job, "Job deleted using Machine Studio.", true); + } } } } @@ -2258,6 +2265,7 @@ namespace Tango.MachineStudio.Developer.ViewModels LogManager.Log("Saving selected machine to database..."); await SelectedMachine.SaveAsync(_machineDbContext); + _actionLogManager.InsertLog(ActionLogType.JobCreated, AuthenticationProvider.CurrentUser, newJob.Name, newJob, "Job created using Machine Studio."); SelectedMachineJob = newJob; LoadSelectedJob(); } @@ -2388,6 +2396,11 @@ namespace Tango.MachineStudio.Developer.ViewModels LogManager.Log("Saving selected machine to database..."); await SelectedMachine.SaveAsync(_machineDbContext); + foreach (var job in SelectedJobs) + { + _actionLogManager.InsertLog(ActionLogType.JobCreated, AuthenticationProvider.CurrentUser, job.Name, job, "Job created using Machine Studio."); + } + CanWork = true; } } @@ -2611,6 +2624,8 @@ namespace Tango.MachineStudio.Developer.ViewModels LogManager.Log($"Importing job files..."); + List jobsToReport = new List(); + foreach (var file in dlg.FileNames) { var bytes = File.ReadAllBytes(file); @@ -2619,10 +2634,16 @@ namespace Tango.MachineStudio.Developer.ViewModels job.JobSource = JobSource.Remote; _machineDbContext.Jobs.Add(job); + jobsToReport.Add(job); } await _machineDbContext.SaveChangesAsync(); + foreach (var job in jobsToReport) + { + _actionLogManager.InsertLog(ActionLogType.JobImported, AuthenticationProvider.CurrentUser, job.Name, job, "New job imported using Machine Studio."); + } + IsFree = true; _notification.ShowInfo($"Jobs imported successfully."); -- cgit v1.3.1 From 44af6a05f13cff1defd8ef4a01c4ecdbd7833c33 Mon Sep 17 00:00:00 2001 From: Roy Ben Shabat Date: Wed, 18 Dec 2019 21:05:38 +0200 Subject: Changed DTO's to include byte[] when generated but mapped by reference. More improvements to action logs. --- Software/DB/Tango.mdf | Bin 75497472 -> 75497472 bytes Software/DB/Tango_log.ldf | Bin 22675456 -> 22675456 bytes .../ViewModels/MainViewVM.cs | 142 +++++++++------- ...eStudio.HardwareDesigner_ijdp5tm3_wpftmp.csproj | 184 +++++++++++++++++++++ .../ActionLogs/DefaultActionLogComparer.cs | 2 +- .../Tango.BL/ActionLogs/DefaultActionLogManager.cs | 4 +- .../Tango.BL/ActionLogs/IActionLogManager.cs | 4 +- .../Builders/ActionLogsCollectionBuilder.cs | 26 +++ Software/Visual_Studio/Tango.BL/DTO/CatDTOBase.cs | 8 + Software/Visual_Studio/Tango.BL/DTO/CctDTO.cs | 5 +- Software/Visual_Studio/Tango.BL/DTO/CctDTOBase.cs | 8 + .../Tango.BL/DTO/ColorCatalogDTOBase.cs | 16 ++ .../Tango.BL/DTO/ColorSpaceDTOBase.cs | 8 + .../Visual_Studio/Tango.BL/DTO/DispenserDTOBase.cs | 8 + Software/Visual_Studio/Tango.BL/DTO/JobDTOBase.cs | 16 ++ .../Tango.BL/DTO/LiquidTypesRmlDTOBase.cs | 8 + .../Tango.BL/DTO/ProcessParametersTableDTO.cs | 5 +- .../DTO/ProcessParametersTablesGroupDTO.cs | 10 ++ Software/Visual_Studio/Tango.BL/DTO/RmlDTO.cs | 10 ++ Software/Visual_Studio/Tango.BL/DTO/RmlDTOBase.cs | 8 + .../Visual_Studio/Tango.BL/ObservableEntityDTO.cs | 6 +- Software/Visual_Studio/Tango.BL/Tango.BL.csproj | 1 + .../ObservablesGenerator.cs | 2 +- 23 files changed, 407 insertions(+), 74 deletions(-) create mode 100644 Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Tango.MachineStudio.HardwareDesigner_ijdp5tm3_wpftmp.csproj create mode 100644 Software/Visual_Studio/Tango.BL/Builders/ActionLogsCollectionBuilder.cs (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels') diff --git a/Software/DB/Tango.mdf b/Software/DB/Tango.mdf index a4bdfc14b..2b528cbe0 100644 Binary files a/Software/DB/Tango.mdf and b/Software/DB/Tango.mdf differ diff --git a/Software/DB/Tango_log.ldf b/Software/DB/Tango_log.ldf index 2fe319056..869e50d97 100644 Binary files a/Software/DB/Tango_log.ldf and b/Software/DB/Tango_log.ldf differ 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 4b276462e..bb8f117c3 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 @@ -1746,6 +1746,8 @@ namespace Tango.MachineStudio.Developer.ViewModels tables.Add(newTable); } + var rmlBeforeDTO = RmlDTO.FromObservable(SelectedRML); + group.Active = true; group.ProcessParametersTables = tables.ToSynchronizedObservableCollection(); group.Rml = SelectedRML; @@ -1760,6 +1762,8 @@ namespace Tango.MachineStudio.Developer.ViewModels SelectedRML.ProcessParametersTablesGroups.Add(group); await SelectedRML.SaveAsync(_activeJobDbContext); + _actionLogManager.InsertLog(ActionLogType.RmlSaved, AuthenticationProvider.CurrentUser, SelectedRML.Name, rmlBeforeDTO, RmlDTO.FromObservable(SelectedRML), "Active process parameters changed from Machine Studio Research module."); + InvalidateLiquidFactorsAndProcessTables(); } @@ -1804,98 +1808,110 @@ namespace Tango.MachineStudio.Developer.ViewModels using (_notification.PushTaskItem("Loading job details...")) { - await Task.Factory.StartNew(() => + try { - _disable_gamut_check = true; + await Task.Factory.StartNew(() => + { + _disable_gamut_check = true; - LogManager.Log(String.Format("Loading job {0}...", SelectedMachineJob.Name)); - SelectedSegments = new ObservableCollection(); - SelectedBrushStops = new ObservableCollection(); - SelectedRML = null; - SelectedSegment = null; - SelectedGroupHistory = null; - SelectedBrushStop = null; - SelectedProcessParametersTable = null; - RmlProcessParametersTableGroup = null; + LogManager.Log(String.Format("Loading job {0}...", SelectedMachineJob.Name)); + SelectedSegments = new ObservableCollection(); + SelectedBrushStops = new ObservableCollection(); + SelectedRML = null; + SelectedSegment = null; + SelectedGroupHistory = null; + SelectedBrushStop = null; + SelectedProcessParametersTable = null; + RmlProcessParametersTableGroup = null; - _blockInvalidateCommands = false; + _blockInvalidateCommands = false; - LogManager.Log("Creating active job DB context..."); - _activeJobDbContext = ObservablesContext.CreateDefault(); + LogManager.Log("Creating active job DB context..."); + _activeJobDbContext = ObservablesContext.CreateDefault(); - LogManager.Log("Initializing available color spaces, RMLs & Winding methods..."); + LogManager.Log("Initializing available color spaces, RMLs & Winding methods..."); - //var processParamsGroups = _activeJobDbContext.ProcessParametersTablesGroups.ToList(); - //var processParams = _activeJobDbContext.ProcessParametersTables.ToList(); + //var processParamsGroups = _activeJobDbContext.ProcessParametersTablesGroups.ToList(); + //var processParams = _activeJobDbContext.ProcessParametersTables.ToList(); - ColorSpaces = _activeJobDbContext.ColorSpaces.ToObservableCollection(); - Rmls = _activeJobDbContext.Rmls.ToObservableCollection(); - WindingMethods = _activeJobDbContext.WindingMethods.ToObservableCollection(); - SpoolTypes = _activeJobDbContext.SpoolTypes.ToObservableCollection(); + ColorSpaces = _activeJobDbContext.ColorSpaces.ToObservableCollection(); + Rmls = _activeJobDbContext.Rmls.ToObservableCollection(); + WindingMethods = _activeJobDbContext.WindingMethods.ToObservableCollection(); + SpoolTypes = _activeJobDbContext.SpoolTypes.ToObservableCollection(); - LogManager.Log("Loading machine spools..."); - _activeJobDbContext.Spools.Where(x => x.MachineGuid == SelectedMachine.Guid).Load(); + 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(); + LogManager.Log("Setting active job..."); + ActiveJob = new JobBuilder(_activeJobDbContext).Set(SelectedMachineJob.Guid).WithUser().WithSegments().WithBrushStops().WithConfiguration().WithRML().Build(); - //_activeJobDbContext.Ccts.Where(x => x.RmlGuid == ActiveJob.RmlGuid).ToList(); - //_activeJobDbContext.Cats.Where(x => x.RmlGuid == ActiveJob.RmlGuid).ToList(); - //_activeJobDbContext.Machines.SingleOrDefault(x => x.Guid == ActiveJob.MachineGuid); - //_activeJobDbContext.Configurations.SingleOrDefault(x => x.Guid == ActiveJob.Machine.ConfigurationGuid); + //_activeJobDbContext.Ccts.Where(x => x.RmlGuid == ActiveJob.RmlGuid).ToList(); + //_activeJobDbContext.Cats.Where(x => x.RmlGuid == ActiveJob.RmlGuid).ToList(); + //_activeJobDbContext.Machines.SingleOrDefault(x => x.Guid == ActiveJob.MachineGuid); + //_activeJobDbContext.Configurations.SingleOrDefault(x => x.Guid == ActiveJob.Machine.ConfigurationGuid); - //_activeJobDbContext.LiquidTypesRmls.ToList(); + //_activeJobDbContext.LiquidTypesRmls.ToList(); - //_activeJobDbContext.IdsPackFormulas.ToList(); - //_activeJobDbContext.LiquidTypes.ToList(); - //_activeJobDbContext.MidTankTypes.ToList(); - //_activeJobDbContext.DispenserTypes.ToList(); + //_activeJobDbContext.IdsPackFormulas.ToList(); + //_activeJobDbContext.LiquidTypes.ToList(); + //_activeJobDbContext.MidTankTypes.ToList(); + //_activeJobDbContext.DispenserTypes.ToList(); - //_activeJobDbContext.IdsPacks.Where(x => x.ConfigurationGuid == ActiveJob.Machine.ConfigurationGuid).ToList(); + //_activeJobDbContext.IdsPacks.Where(x => x.ConfigurationGuid == ActiveJob.Machine.ConfigurationGuid).ToList(); - _beforeSaveJobDTO = JobDTO.FromObservable(ActiveJob); + _beforeSaveJobDTO = JobDTO.FromObservable(ActiveJob); - LogManager.Log("Setting selected segment..."); - _selectedSegment = ActiveJob.OrderedSegments.FirstOrDefault(); + LogManager.Log("Setting selected segment..."); + _selectedSegment = ActiveJob.OrderedSegments.FirstOrDefault(); - ActiveJob.LengthChanged -= ActiveJob_LengthChanged; - ActiveJob.LengthChanged += ActiveJob_LengthChanged; + ActiveJob.LengthChanged -= ActiveJob_LengthChanged; + ActiveJob.LengthChanged += ActiveJob_LengthChanged; - _selectedRML = ActiveJob.Rml; - InvalidateLiquidFactorsAndProcessTables(); - RaisePropertyChanged(nameof(SelectedRML)); + _selectedRML = ActiveJob.Rml; + InvalidateLiquidFactorsAndProcessTables(); + RaisePropertyChanged(nameof(SelectedRML)); - UpdateEstimatedDuration(); + UpdateEstimatedDuration(); - _blockInvalidateCommands = false; - InvalidateRelayCommands(); + _blockInvalidateCommands = false; + InvalidateRelayCommands(); - _disable_gamut_check = false; + _disable_gamut_check = false; - _settings.LastSelectedMachineGuid = SelectedMachine != null ? SelectedMachine.Guid : null; - _settings.LastSelectedJobGuid = SelectedMachineJob != null ? SelectedMachineJob.Guid : null; + _settings.LastSelectedMachineGuid = SelectedMachine != null ? SelectedMachine.Guid : null; + _settings.LastSelectedJobGuid = SelectedMachineJob != null ? SelectedMachineJob.Guid : null; - _settings.Save(); - }); + _settings.Save(); + }); - SegmentsCollectionView = CollectionViewSource.GetDefaultView(ActiveJob.Segments); - SegmentsCollectionView.SortDescriptions.Add(new SortDescription(nameof(Segment.SegmentIndex), ListSortDirection.Ascending)); + SegmentsCollectionView = CollectionViewSource.GetDefaultView(ActiveJob.Segments); + SegmentsCollectionView.SortDescriptions.Add(new SortDescription(nameof(Segment.SegmentIndex), ListSortDirection.Ascending)); - foreach (var segment in ActiveJob.Segments) - { - SetSegmentBrushStopsLiquidVolumes(segment); - } + foreach (var segment in ActiveJob.Segments) + { + SetSegmentBrushStopsLiquidVolumes(segment); + } - SelectedSegment = _selectedSegment; + SelectedSegment = _selectedSegment; + + if (ActiveJob != null) + { + _current_job_string = ActiveJob.ToJobFileWhenLoaded().ToString(); + } - if (ActiveJob != null) + UIHelper.DoEvents(); + _navigation.NavigateTo(DeveloperNavigationView.JobView); + } + catch (Exception ex) { - _current_job_string = ActiveJob.ToJobFileWhenLoaded().ToString(); + LogManager.Log(ex, "Error loading job."); + _notification.ShowError($"An error occurred while trying to load the selected job.\n{ex.FlattenMessage()}"); + } + finally + { + CanWork = true; } - - UIHelper.DoEvents(); - _navigation.NavigateTo(DeveloperNavigationView.JobView); } CanWork = true; diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Tango.MachineStudio.HardwareDesigner_ijdp5tm3_wpftmp.csproj b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Tango.MachineStudio.HardwareDesigner_ijdp5tm3_wpftmp.csproj new file mode 100644 index 000000000..0ef643858 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Tango.MachineStudio.HardwareDesigner_ijdp5tm3_wpftmp.csproj @@ -0,0 +1,184 @@ + + + + + Debug + AnyCPU + {69DB0564-268C-4B3C-B5D6-A3CDC7D14EAE} + library + Tango.MachineStudio.HardwareDesigner + Tango.MachineStudio.HardwareDesigner + v4.6.1 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + + + true + full + false + ..\..\..\Build\Machine Studio\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\..\Build\Machine Studio\Release\ + TRACE + prompt + 4 + + + + + + GlobalVersionInfo.cs + + + + + + + + + + + ComparisonWizardView.xaml + + + + MainView.xaml + + + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + {f441feee-322a-4943-b566-110e12fd3b72} + Tango.BL + + + {a34ee0f0-649d-41c8-8489-b6f1cc6924ee} + Tango.Core + + + {58e8825f-0c96-449c-b320-1e82b0aa876b} + Tango.CSV + + + {b112d89a-a106-41ae-a0c1-4abc84c477f5} + Tango.DragAndDrop + + + {4206ac58-3b57-4699-8835-90bf6db01a61} + Tango.Integration + + + {bc932dbd-7cdb-488c-99e4-f02cf441f55e} + Tango.Logging + + + {d8f1ad85-526a-4f50-b6dc-d437af63d8d8} + Tango.Settings + + + {8491d07b-c1f6-4b62-a412-41b9fd2d6538} + Tango.SharedUI + + + {cb0b0aa2-bb24-4bca-a720-45e397684e12} + Tango.MachineStudio.Common + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Software/Visual_Studio/Tango.BL/ActionLogs/DefaultActionLogComparer.cs b/Software/Visual_Studio/Tango.BL/ActionLogs/DefaultActionLogComparer.cs index 542aba0e4..b6c028137 100644 --- a/Software/Visual_Studio/Tango.BL/ActionLogs/DefaultActionLogComparer.cs +++ b/Software/Visual_Studio/Tango.BL/ActionLogs/DefaultActionLogComparer.cs @@ -59,7 +59,7 @@ namespace Tango.BL.ActionLogs foreach (var prop in GetProperties(before, after).OrderByDescending(x => x.PropertyType.IsPrimitive || x.PropertyType.IsValueType || x.PropertyType == typeof(String))) { - if (GetShouldIgnore(prop, before, after)) continue; + if (prop.PropertyType == typeof(byte[]) || GetShouldIgnore(prop, before, after)) continue; if (prop.PropertyType.IsPrimitive || prop.PropertyType.IsValueType || prop.PropertyType == typeof(String)) { diff --git a/Software/Visual_Studio/Tango.BL/ActionLogs/DefaultActionLogManager.cs b/Software/Visual_Studio/Tango.BL/ActionLogs/DefaultActionLogManager.cs index d95f4cd54..b8f427e3a 100644 --- a/Software/Visual_Studio/Tango.BL/ActionLogs/DefaultActionLogManager.cs +++ b/Software/Visual_Studio/Tango.BL/ActionLogs/DefaultActionLogManager.cs @@ -160,7 +160,7 @@ namespace Tango.BL.ActionLogs } /// - /// Inserts a new action log (deletion entry). + /// Inserts a new action log (deletion/creation entry). /// /// The type. /// The user. @@ -181,7 +181,7 @@ namespace Tango.BL.ActionLogs } /// - /// Inserts a new action log (nutral entry). + /// Inserts a new action log (creation entry). /// /// The type. /// The user unique identifier. diff --git a/Software/Visual_Studio/Tango.BL/ActionLogs/IActionLogManager.cs b/Software/Visual_Studio/Tango.BL/ActionLogs/IActionLogManager.cs index 6fdca98a7..e1fdbc4ec 100644 --- a/Software/Visual_Studio/Tango.BL/ActionLogs/IActionLogManager.cs +++ b/Software/Visual_Studio/Tango.BL/ActionLogs/IActionLogManager.cs @@ -58,7 +58,7 @@ namespace Tango.BL.ActionLogs void InsertLog(ActionLogType type, User user, String relatedObjectName, IActionLogComparable relatedObjectBefore, IActionLogComparable relatedObjectAfter, String message = null); /// - /// Inserts a new action log (deletion entry). + /// Inserts a new action log (deletion/creation entry). /// /// The type. /// The user. @@ -69,7 +69,7 @@ namespace Tango.BL.ActionLogs void InsertLog(ActionLogType type, User user, String relatedObjectName, IActionLogComparable relatedObject, String message = null, bool serializeRelatedObject = false); /// - /// Inserts a new action log (nutral entry). + /// Inserts a new action log (creation entry). /// /// The type. /// The user unique identifier. diff --git a/Software/Visual_Studio/Tango.BL/Builders/ActionLogsCollectionBuilder.cs b/Software/Visual_Studio/Tango.BL/Builders/ActionLogsCollectionBuilder.cs new file mode 100644 index 000000000..fecc0c662 --- /dev/null +++ b/Software/Visual_Studio/Tango.BL/Builders/ActionLogsCollectionBuilder.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.BL.Entities; +using System.Data.Entity; + +namespace Tango.BL.Builders +{ + public class ActionLogsCollectionBuilder : EntityCollectionBuilderBase + { + public ActionLogsCollectionBuilder(ObservablesContext context) : base(context) + { + + } + + public virtual ActionLogsCollectionBuilder WithUsers() + { + return AddQueryStep(1, (query) => + { + return query.Include(x => x.User).Include(x => x.User != null ? x.User.Contact : null); + }); + } + } +} diff --git a/Software/Visual_Studio/Tango.BL/DTO/CatDTOBase.cs b/Software/Visual_Studio/Tango.BL/DTO/CatDTOBase.cs index 31de24ec0..20d534950 100644 --- a/Software/Visual_Studio/Tango.BL/DTO/CatDTOBase.cs +++ b/Software/Visual_Studio/Tango.BL/DTO/CatDTOBase.cs @@ -53,5 +53,13 @@ namespace Tango.BL.DTO get; set; } + /// + /// data + /// + public Byte[] Data + { + get; set; + } + } } diff --git a/Software/Visual_Studio/Tango.BL/DTO/CctDTO.cs b/Software/Visual_Studio/Tango.BL/DTO/CctDTO.cs index 96fc02a9e..65cf781f8 100644 --- a/Software/Visual_Studio/Tango.BL/DTO/CctDTO.cs +++ b/Software/Visual_Studio/Tango.BL/DTO/CctDTO.cs @@ -9,6 +9,9 @@ namespace Tango.BL.DTO { public class CctDTO : CctDTOBase { - + protected override string OnGetActionLogName() + { + return $"CCT '{FileName}'"; + } } } diff --git a/Software/Visual_Studio/Tango.BL/DTO/CctDTOBase.cs b/Software/Visual_Studio/Tango.BL/DTO/CctDTOBase.cs index 1205a857e..5bfc59bb5 100644 --- a/Software/Visual_Studio/Tango.BL/DTO/CctDTOBase.cs +++ b/Software/Visual_Studio/Tango.BL/DTO/CctDTOBase.cs @@ -45,5 +45,13 @@ namespace Tango.BL.DTO get; set; } + /// + /// data + /// + public Byte[] Data + { + get; set; + } + } } diff --git a/Software/Visual_Studio/Tango.BL/DTO/ColorCatalogDTOBase.cs b/Software/Visual_Studio/Tango.BL/DTO/ColorCatalogDTOBase.cs index 2643b1d29..bd829e18f 100644 --- a/Software/Visual_Studio/Tango.BL/DTO/ColorCatalogDTOBase.cs +++ b/Software/Visual_Studio/Tango.BL/DTO/ColorCatalogDTOBase.cs @@ -53,5 +53,21 @@ namespace Tango.BL.DTO get; set; } + /// + /// logo + /// + public Byte[] Logo + { + get; set; + } + + /// + /// image + /// + public Byte[] Image + { + get; set; + } + } } diff --git a/Software/Visual_Studio/Tango.BL/DTO/ColorSpaceDTOBase.cs b/Software/Visual_Studio/Tango.BL/DTO/ColorSpaceDTOBase.cs index ddb367fc5..3a3fb4d14 100644 --- a/Software/Visual_Studio/Tango.BL/DTO/ColorSpaceDTOBase.cs +++ b/Software/Visual_Studio/Tango.BL/DTO/ColorSpaceDTOBase.cs @@ -45,5 +45,13 @@ namespace Tango.BL.DTO get; set; } + /// + /// thumbnail + /// + public Byte[] Thumbnail + { + get; set; + } + } } diff --git a/Software/Visual_Studio/Tango.BL/DTO/DispenserDTOBase.cs b/Software/Visual_Studio/Tango.BL/DTO/DispenserDTOBase.cs index 16e19d78a..6146f01dd 100644 --- a/Software/Visual_Studio/Tango.BL/DTO/DispenserDTOBase.cs +++ b/Software/Visual_Studio/Tango.BL/DTO/DispenserDTOBase.cs @@ -77,5 +77,13 @@ namespace Tango.BL.DTO get; set; } + /// + /// calibration data + /// + public Byte[] CalibrationData + { + get; set; + } + } } diff --git a/Software/Visual_Studio/Tango.BL/DTO/JobDTOBase.cs b/Software/Visual_Studio/Tango.BL/DTO/JobDTOBase.cs index 2960381fc..073d833f2 100644 --- a/Software/Visual_Studio/Tango.BL/DTO/JobDTOBase.cs +++ b/Software/Visual_Studio/Tango.BL/DTO/JobDTOBase.cs @@ -146,6 +146,14 @@ namespace Tango.BL.DTO get; set; } + /// + /// embroidery file data + /// + public Byte[] EmbroideryFileData + { + get; set; + } + /// /// embroidery file name /// @@ -154,6 +162,14 @@ namespace Tango.BL.DTO get; set; } + /// + /// embroidery jpeg + /// + public Byte[] EmbroideryJpeg + { + get; set; + } + /// /// status /// diff --git a/Software/Visual_Studio/Tango.BL/DTO/LiquidTypesRmlDTOBase.cs b/Software/Visual_Studio/Tango.BL/DTO/LiquidTypesRmlDTOBase.cs index badbaf0bc..1133f7cc8 100644 --- a/Software/Visual_Studio/Tango.BL/DTO/LiquidTypesRmlDTOBase.cs +++ b/Software/Visual_Studio/Tango.BL/DTO/LiquidTypesRmlDTOBase.cs @@ -45,5 +45,13 @@ namespace Tango.BL.DTO get; set; } + /// + /// default cat data + /// + public Byte[] DefaultCatData + { + get; set; + } + } } diff --git a/Software/Visual_Studio/Tango.BL/DTO/ProcessParametersTableDTO.cs b/Software/Visual_Studio/Tango.BL/DTO/ProcessParametersTableDTO.cs index 9959b2254..84da600a8 100644 --- a/Software/Visual_Studio/Tango.BL/DTO/ProcessParametersTableDTO.cs +++ b/Software/Visual_Studio/Tango.BL/DTO/ProcessParametersTableDTO.cs @@ -9,6 +9,9 @@ namespace Tango.BL.DTO { public class ProcessParametersTableDTO : ProcessParametersTableDTOBase { - + protected override string OnGetActionLogName() + { + return $"Process Table '{Name}'"; + } } } diff --git a/Software/Visual_Studio/Tango.BL/DTO/ProcessParametersTablesGroupDTO.cs b/Software/Visual_Studio/Tango.BL/DTO/ProcessParametersTablesGroupDTO.cs index 8419055c7..2091e5e57 100644 --- a/Software/Visual_Studio/Tango.BL/DTO/ProcessParametersTablesGroupDTO.cs +++ b/Software/Visual_Studio/Tango.BL/DTO/ProcessParametersTablesGroupDTO.cs @@ -9,6 +9,16 @@ namespace Tango.BL.DTO { public class ProcessParametersTablesGroupDTO : ProcessParametersTablesGroupDTOBase { + public List ProcessParametersTables { get; set; } + public ProcessParametersTablesGroupDTO() + { + ProcessParametersTables = new List(); + } + + protected override string OnGetActionLogName() + { + return $"Process Group '{Name}'"; + } } } diff --git a/Software/Visual_Studio/Tango.BL/DTO/RmlDTO.cs b/Software/Visual_Studio/Tango.BL/DTO/RmlDTO.cs index ef4950fda..4b9be724e 100644 --- a/Software/Visual_Studio/Tango.BL/DTO/RmlDTO.cs +++ b/Software/Visual_Studio/Tango.BL/DTO/RmlDTO.cs @@ -9,6 +9,16 @@ namespace Tango.BL.DTO { public class RmlDTO : RmlDTOBase { + public List ProcessParametersTablesGroups { get; set; } + public RmlDTO() + { + ProcessParametersTablesGroups = new List(); + } + + protected override string OnGetActionLogName() + { + return $"RML '{Name}'"; + } } } diff --git a/Software/Visual_Studio/Tango.BL/DTO/RmlDTOBase.cs b/Software/Visual_Studio/Tango.BL/DTO/RmlDTOBase.cs index 8ed757b8d..84f7890ea 100644 --- a/Software/Visual_Studio/Tango.BL/DTO/RmlDTOBase.cs +++ b/Software/Visual_Studio/Tango.BL/DTO/RmlDTOBase.cs @@ -205,6 +205,14 @@ namespace Tango.BL.DTO get; set; } + /// + /// thumbnail + /// + public Byte[] Thumbnail + { + get; set; + } + /// /// cct guid /// diff --git a/Software/Visual_Studio/Tango.BL/ObservableEntityDTO.cs b/Software/Visual_Studio/Tango.BL/ObservableEntityDTO.cs index 720d6b9b7..ee8d2f40f 100644 --- a/Software/Visual_Studio/Tango.BL/ObservableEntityDTO.cs +++ b/Software/Visual_Studio/Tango.BL/ObservableEntityDTO.cs @@ -51,7 +51,7 @@ namespace Tango.BL var observableProp = typeof(T).GetProperty(prop.Name); if (observableProp != null) { - if (prop.PropertyType.IsPrimitive || prop.PropertyType.IsValueType || prop.PropertyType == typeof(String)) + if (prop.PropertyType.IsPrimitive || prop.PropertyType.IsValueType || prop.PropertyType == typeof(String) || prop.PropertyType == typeof(byte[])) { prop.SetValue(dto, observableProp.GetValue(observable)); } @@ -99,7 +99,7 @@ namespace Tango.BL var observableProp = typeof(T).GetProperty(prop.Name); if (observableProp != null) { - if (prop.PropertyType.IsPrimitive || prop.PropertyType.IsValueType || prop.PropertyType == typeof(String)) + if (prop.PropertyType.IsPrimitive || prop.PropertyType.IsValueType || prop.PropertyType == typeof(String) || prop.PropertyType == typeof(byte[])) { observableProp.SetValue(observable, prop.GetValue(this)); } @@ -174,7 +174,7 @@ namespace Tango.BL var observableProp = typeof(T).GetProperty(prop.Name); if (observableProp != null) { - if (prop.PropertyType.IsPrimitive || prop.PropertyType.IsValueType || prop.PropertyType == typeof(String)) + if (prop.PropertyType.IsPrimitive || prop.PropertyType.IsValueType || prop.PropertyType == typeof(String) || prop.PropertyType == typeof(byte[])) { var observableValue = observableProp.GetValue(observable); var dtoValue = prop.GetValue(this); diff --git a/Software/Visual_Studio/Tango.BL/Tango.BL.csproj b/Software/Visual_Studio/Tango.BL/Tango.BL.csproj index f1bdf94ec..fb8ec84a3 100644 --- a/Software/Visual_Studio/Tango.BL/Tango.BL.csproj +++ b/Software/Visual_Studio/Tango.BL/Tango.BL.csproj @@ -89,6 +89,7 @@ + diff --git a/Software/Visual_Studio/Utilities/Tango.DBObservablesGenerator.CLI/ObservablesGenerator.cs b/Software/Visual_Studio/Utilities/Tango.DBObservablesGenerator.CLI/ObservablesGenerator.cs index 3280f47f5..92eab0857 100644 --- a/Software/Visual_Studio/Utilities/Tango.DBObservablesGenerator.CLI/ObservablesGenerator.cs +++ b/Software/Visual_Studio/Utilities/Tango.DBObservablesGenerator.CLI/ObservablesGenerator.cs @@ -184,7 +184,7 @@ namespace Tango.DBObservablesGenerator.CLI } codeFile.Fields.Add(codeField); - if (field.PropertyType.IsPrimitive || field.PropertyType.IsValueType || field.PropertyType == typeof(String)) + if (field.PropertyType.IsPrimitive || field.PropertyType.IsValueType || field.PropertyType == typeof(String) || field.PropertyType == typeof(byte[])) { dtoCodeBase.Properties.Add(new Property() { -- cgit v1.3.1 From c9622210d44031d5019836e238ab2134af61b304 Mon Sep 17 00:00:00 2001 From: Roy Ben Shabat Date: Wed, 18 Dec 2019 21:25:17 +0200 Subject: Added RML liquid factors to ActionLog comparison. Added liquid factors save and process parameters ActionLog to MS research module. --- .../Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs | 7 +++++++ Software/Visual_Studio/Tango.BL/DTO/LiquidTypeDTO.cs | 5 ++++- Software/Visual_Studio/Tango.BL/DTO/LiquidTypesRmlDTO.cs | 5 +++++ Software/Visual_Studio/Tango.BL/DTO/RmlDTO.cs | 3 +++ 4 files changed, 19 insertions(+), 1 deletion(-) (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels') 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 bb8f117c3..8b235a13a 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 @@ -90,6 +90,7 @@ namespace Tango.MachineStudio.Developer.ViewModels private string _current_job_string; private JobDTO _beforeSaveJobDTO; private IActionLogManager _actionLogManager; + private RmlDTO _selectedRMLBeforeLiquidFactorsSaves; #region Properties @@ -1598,8 +1599,12 @@ namespace Tango.MachineStudio.Developer.ViewModels { LogManager.Log(String.Format("Saving liquid factors for RML {0}...", SelectedRML.Name)); await SelectedRML.SaveAsync(_activeJobDbContext); + var rmlAfterChange = RmlDTO.FromObservable(SelectedRML); + _actionLogManager.InsertLog(ActionLogType.RmlSaved, AuthenticationProvider.CurrentUser, SelectedRML.Name, _selectedRMLBeforeLiquidFactorsSaves, rmlAfterChange, "RML liquid factors changed from Machine Studio Research module."); + _selectedRMLBeforeLiquidFactorsSaves = rmlAfterChange; LiquidTypesRmls = ActiveJob.Machine.Configuration.GetSupportedIdsPacks(SelectedRML).Select(x => x.LiquidType).SelectMany(x => x.LiquidTypesRmls).Where(x => x.Rml.Guid == SelectedRML.Guid).ToList(); + foreach (var segment in ActiveJob.Segments) { SetSegmentBrushStopsLiquidVolumes(segment); @@ -1629,6 +1634,8 @@ namespace Tango.MachineStudio.Developer.ViewModels _selectedRML = new RmlBuilder(_activeJobDbContext).Set(SelectedRML.Guid).WithAllParametersGroup().WithCAT(SelectedMachine.Guid).WithCCT().WithLiquidFactors().Build(); + _selectedRMLBeforeLiquidFactorsSaves = RmlDTO.FromObservable(_selectedRML); + if (_selectedRML.Cct == null) { InvokeUI(() => diff --git a/Software/Visual_Studio/Tango.BL/DTO/LiquidTypeDTO.cs b/Software/Visual_Studio/Tango.BL/DTO/LiquidTypeDTO.cs index cec4185fc..e00510433 100644 --- a/Software/Visual_Studio/Tango.BL/DTO/LiquidTypeDTO.cs +++ b/Software/Visual_Studio/Tango.BL/DTO/LiquidTypeDTO.cs @@ -9,6 +9,9 @@ namespace Tango.BL.DTO { public class LiquidTypeDTO : LiquidTypeDTOBase { - + protected override string OnGetActionLogName() + { + return $"Liquid Type '{Name}'"; + } } } diff --git a/Software/Visual_Studio/Tango.BL/DTO/LiquidTypesRmlDTO.cs b/Software/Visual_Studio/Tango.BL/DTO/LiquidTypesRmlDTO.cs index 787a00391..2366b9727 100644 --- a/Software/Visual_Studio/Tango.BL/DTO/LiquidTypesRmlDTO.cs +++ b/Software/Visual_Studio/Tango.BL/DTO/LiquidTypesRmlDTO.cs @@ -9,6 +9,11 @@ namespace Tango.BL.DTO { public class LiquidTypesRmlDTO : LiquidTypesRmlDTOBase { + public LiquidTypeDTO LiquidType { get; set; } + protected override string OnGetActionLogName() + { + return this.LiquidType != null ? $"Liquid Factor '{LiquidType.Name}'" : $"Liquid Factor '{Guid}'"; + } } } diff --git a/Software/Visual_Studio/Tango.BL/DTO/RmlDTO.cs b/Software/Visual_Studio/Tango.BL/DTO/RmlDTO.cs index 4b9be724e..a221a760c 100644 --- a/Software/Visual_Studio/Tango.BL/DTO/RmlDTO.cs +++ b/Software/Visual_Studio/Tango.BL/DTO/RmlDTO.cs @@ -11,9 +11,12 @@ namespace Tango.BL.DTO { public List ProcessParametersTablesGroups { get; set; } + public List LiquidTypesRmls { get; set; } + public RmlDTO() { ProcessParametersTablesGroups = new List(); + LiquidTypesRmls = new List(); } protected override string OnGetActionLogName() -- cgit v1.3.1