AssignmentGrid.cs 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using Comal.Classes;
  5. using InABox.Clients;
  6. using InABox.Core;
  7. using InABox.DynamicGrid;
  8. namespace PRSDesktop
  9. {
  10. public class AssignmentGrid : DynamicDataGrid<Assignment>
  11. {
  12. public AssignmentGrid()
  13. {
  14. HiddenColumns.Add(x => x.JobLink.Deleted);
  15. }
  16. protected override Dictionary<string, object?> EditorValueChanged(IDynamicEditorForm editor, Assignment[] items, string name, object value)
  17. {
  18. var result = base.EditorValueChanged(editor, items, name, value);
  19. if (name.Equals("EmployeeLink.ID"))
  20. {
  21. if (editor.FindEditor("ActivityLink.ID") is ILookupEditorControl activity)
  22. DefineLookups(activity, items);
  23. }
  24. else if (name.Equals("JobLink.ID"))
  25. {
  26. var itp = editor.FindEditor("ITP.ID") as ILookupEditorControl;
  27. if (itp != null)
  28. DefineLookups(itp, items);
  29. }
  30. else if (name.Equals("Task.ID"))
  31. {
  32. var jobid = new Client<Kanban>().Query(
  33. new Filter<Kanban>(x => x.ID).IsEqualTo(value),
  34. new Columns<Kanban>(x => x.JobLink.ID)
  35. ).Rows.FirstOrDefault()?.Get<Kanban, Guid>(x => x.JobLink.ID);
  36. DynamicGridUtils.UpdateEditorValue(items, "JobLink.ID", jobid.HasValue ? jobid.Value : Guid.Empty);
  37. DynamicGridUtils.UpdateEditorValue(items, "ITP.ID", Guid.Empty);
  38. var itp = editor.FindEditor("ITP.ID") as ILookupEditorControl;
  39. if (itp != null)
  40. DefineLookups(itp, items);
  41. }
  42. return result;
  43. }
  44. protected override void AfterLoad(IDynamicEditorForm editor, Assignment[] items)
  45. {
  46. base.AfterLoad(editor, items);
  47. var first = items.FirstOrDefault();
  48. if (first?.ID == Guid.Empty)
  49. ReloadForms<Assignment, AssignmentForm, ActivityForm>(editor, first, x => x.Activity.ID, first.ActivityLink.ID);
  50. }
  51. }
  52. }