QualificationSelectionPage.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. using System;
  2. using System.Linq;
  3. using Comal.Classes;
  4. using InABox.Core;
  5. using InABox.Mobile;
  6. using Xamarin.Forms;
  7. namespace PRS.Mobile
  8. {
  9. public class QualificationSelectionPage : SelectionPage
  10. {
  11. private static readonly QualificationModel _lookups = new QualificationModel(App.Data,
  12. LookupFactory.DefineFilter<Qualification>
  13. );
  14. public QualificationSelectionPage(Action<QualificationShell> action)
  15. : base(
  16. "Select Qualification",
  17. SelectionPageMode.Immediate,
  18. (columns, Filters) =>
  19. {
  20. columns
  21. .BeginUpdate()
  22. .Clear()
  23. .Add(new MobileGridTextColumn<QualificationShell>()
  24. { Column = x => x.Description, Width = GridLength.Star })
  25. .EndUpdate();
  26. },
  27. (args) =>
  28. {
  29. _lookups.SelectFilter(args.Filter);
  30. var result = _lookups.Refresh(args.Force);
  31. args.LastUpdated = App.Data.Employees.LastUpdated;
  32. return result;
  33. },
  34. (items) => action?.Invoke(items.FirstOrDefault() as QualificationShell)
  35. )
  36. {
  37. }
  38. }
  39. }