diff options
| author | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2020-12-28 02:22:41 +0200 |
|---|---|---|
| committer | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2020-12-28 02:22:41 +0200 |
| commit | 1cb99b7e98491a9064eb4c87b89991b5301528c1 (patch) | |
| tree | 1232f6af9a609a10a05013f2de69d5a18c1488d7 /Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs | |
| parent | c2064e58fd1923bf820e14afcd014036299336b9 (diff) | |
| download | Tango-1cb99b7e98491a9064eb4c87b89991b5301528c1.tar.gz Tango-1cb99b7e98491a9064eb4c87b89991b5301528c1.zip | |
Completed csv job import.
Diffstat (limited to 'Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs')
| -rw-r--r-- | Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobSummeryViewVM.cs | 10 | ||||
| -rw-r--r-- | Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobsViewVM.cs | 57 |
2 files changed, 56 insertions, 11 deletions
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobSummeryViewVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobSummeryViewVM.cs index a2acf5893..0e40e0d6a 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobSummeryViewVM.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobSummeryViewVM.cs @@ -155,16 +155,6 @@ namespace Tango.PPC.Jobs.ViewModels .WithBrushStops() .BuildAsync(); - if (Job.ColorSpace.Space == BL.Enumerations.ColorSpaces.Catalog) - { - if (_context.ColorCatalogs.SingleOrDefault(x => x.Guid == Job.ColorCatalogGuid) == null) - { - await NotificationProvider.ShowError("The selected color catalog for this job could not be found.\nCannot load job."); - await NavigationManager.NavigateBack(); - return; - } - } - await Task.Factory.StartNew(() => { try diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobsViewVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobsViewVM.cs index 6440f7e46..fe831587c 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobsViewVM.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobsViewVM.cs @@ -39,6 +39,8 @@ using Tango.Core.ExtensionMethods; using Tango.PPC.Common.Synchronization; using Tango.PPC.Jobs.NotificationItems; using Tango.PPC.Storage.Models; +using Tango.BL.Helpers; +using Tango.ColorConversion; namespace Tango.PPC.Jobs.ViewModels { @@ -886,9 +888,62 @@ namespace Tango.PPC.Jobs.ViewModels await vm.Init(); await NotificationProvider.ShowDialog<ImportCsvJobViewVM>(vm); - if (vm.DialogResult) + if (vm.DialogResult && vm.SelectedRml != null) { + try + { + NotificationProvider.SetGlobalBusyMessage("Importing job from file..."); + + using (ObservablesContext db = ObservablesContext.CreateDefault()) + { + var segments = await SegmentsCsvHelper.FromFile(item.Path, MachineProvider.Machine, db); + + Job job = new Job(); + job.LastUpdated = DateTime.UtcNow; + job.JobSource = JobSource.Local; + job.Name = vm.Name; + job.NumberOfHeads = 1; + job.NumberOfUnits = 1; + job.SampleUnitsOrMeters = 1; + job.CreationDate = DateTime.UtcNow; + job.JobStatus = JobStatuses.Draft; + job.JobType = JobTypes.Knitting; + job.EnableLubrication = true; + job.MachineGuid = MachineProvider.Machine.Guid; + job.RmlGuid = vm.SelectedRml.Guid; + job.Machine = await new MachineBuilder(db).Set(job.MachineGuid).WithCats().WithConfiguration().BuildAsync(); + job.Rml = await new RmlBuilder(db).Set(job.RmlGuid).WithActiveParametersGroup().WithCAT(MachineProvider.Machine.Guid).WithCCT().WithLiquidFactors().BuildAsync(); + job.WindingMethodGuid = Adapter.WindingMethods.FirstOrDefault().Guid; + job.SpoolTypeGuid = Settings.DefaultSpoolTypeGuid != null ? Settings.DefaultSpoolTypeGuid : Adapter.SpoolTypes.FirstOrDefault().Guid; + + foreach (var segment in segments) + { + segment.Job = job; + job.Segments.Add(segment); + } + + IColorConverter converter = new DefaultColorConverter(); + foreach (var stop in segments.SelectMany(x => x.BrushStops.Where(y => y.BrushColorSpace == ColorSpaces.Volume))) + { + var output = converter.Convert(stop, false); + var suggestion = output.CreateSingleSuggestion(); + stop.Color = suggestion.Color; + } + + db.Jobs.Add(job); + await db.SaveChangesAsync(); + LoadJobs(); + } + + NotificationProvider.ReleaseGlobalBusyMessage(); + } + catch (Exception ex) + { + NotificationProvider.ReleaseGlobalBusyMessage(); + LogManager.Log(ex, "Error importing job from CSV."); + await NotificationProvider.ShowError($"Error importing job from csv file.\n{ex.FlattenMessage()}"); + } } } |
