JobFormDefinitionGrid.cs 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  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. namespace PRSDesktop;
  9. public class JobFormDefinitionGrid : DynamicManyToManyGrid<JobFormDefinition, Job>
  10. {
  11. public JobFormDefinitionGrid()
  12. {
  13. AddButton("Add All", null, AddAllClick);
  14. }
  15. private bool AddAllClick(Button arg1, CoreRow[] arg2)
  16. {
  17. var existingforms = ExtractValues(x => x.Form.ID, Selection.All).ToArray();
  18. var newforms = new Client<DigitalForm>().Query(
  19. new Filter<DigitalForm>(x => x.Active).IsEqualTo(true)
  20. .And(x => x.AppliesTo).IsEqualTo("Job")
  21. .And(x => x.ID).NotInList(existingforms)
  22. );
  23. foreach (var row in newforms.Rows)
  24. {
  25. var newitem = CreateItem();
  26. newitem.Job.ID = Item.ID;
  27. newitem.Form.ID = row.Get<DigitalForm, Guid>(x => x.ID);
  28. newitem.Form.Synchronise(row.ToObject<DigitalForm>());
  29. SaveItem(newitem);
  30. }
  31. return true;
  32. }
  33. }