ManufacturingTemplateStageGrid.cs 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. using System;
  2. using System.Linq;
  3. using System.Windows.Controls;
  4. using Comal.Classes;
  5. using InABox.Clients;
  6. using InABox.Core;
  7. using InABox.DynamicGrid;
  8. using InABox.WPF;
  9. namespace PRSDesktop.Panels.Manufacturing
  10. {
  11. internal class ManufacturingTemplateStageGrid : DynamicOneToManyGrid<ManufacturingTemplate, ManufacturingTemplateStage>
  12. {
  13. public ManufacturingTemplateStageGrid()
  14. {
  15. AddButton("Add All", PRSDesktop.Resources.add.AsBitmapImage(), AddAll);
  16. }
  17. private bool AddAll(Button arg1, CoreRow[] arg2)
  18. {
  19. var template = Item;
  20. var sections = new Client<ManufacturingSection>().Load(
  21. new Filter<ManufacturingSection>(x => x.Factory.ID).IsEqualTo(template.Factory.ID)
  22. ).OrderBy(x => x.Factory.Name).ThenBy(x => x.Sequence);
  23. foreach (var section in sections)
  24. {
  25. var stage = new ManufacturingTemplateStage();
  26. stage.Section.ID = section.ID;
  27. stage.Section.Synchronise(section);
  28. stage.Template.ID = template.ID;
  29. stage.Template.Synchronise(template);
  30. stage.Time = new TimeSpan(0);
  31. stage.SequenceType = SequenceType.Link;
  32. Items.Add(stage);
  33. }
  34. return true;
  35. }
  36. }
  37. }