AssignmentGrid.cs 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  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(DynamicEditorForm 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(DynamicEditorForm editor, Assignment[] items)
  45. {
  46. base.AfterLoad(editor, items);
  47. if (items.FirstOrDefault().ID == Guid.Empty)
  48. ReloadForms<Assignment, AssignmentForm, ActivityForm>(editor, items.FirstOrDefault(), x => x.Activity.ID,
  49. items.FirstOrDefault().ActivityLink.ID);
  50. }
  51. }
  52. }