ManufacturingTemplateStageGrid.cs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  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 = Client.Query(
  21. new Filter<ManufacturingSection>(x => x.Factory.ID).IsEqualTo(template.Factory.ID),
  22. null).ToObjects<ManufacturingSection>()
  23. .OrderBy(x => x.Factory.Name)
  24. .ThenBy(x => x.Sequence);
  25. foreach (var section in sections)
  26. {
  27. var stage = new ManufacturingTemplateStage();
  28. stage.Section.ID = section.ID;
  29. stage.Section.Synchronise(section);
  30. stage.Template.ID = template.ID;
  31. stage.Template.Synchronise(template);
  32. stage.Time = new TimeSpan(0);
  33. stage.SequenceType = SequenceType.Link;
  34. Items.Add(stage);
  35. }
  36. return true;
  37. }
  38. }
  39. }