TaskSelectionPage.cs 1.3 KB

12345678910111213141516171819202122232425262728293031323334
  1. using System;
  2. using System.Linq;
  3. using InABox.Mobile;
  4. namespace PRS.Mobile
  5. {
  6. public class TaskSelectionPage : SelectionPage
  7. {
  8. public TaskSelectionPage(Action<KanbanShell> action)
  9. : base(
  10. (string)"Select Task",
  11. (SelectionPageMode)SelectionPageMode.Immediate,
  12. (columns, Filters) =>
  13. {
  14. columns
  15. .BeginUpdate()
  16. .Clear()
  17. .Add(new MobileGridIntegerColumn<KanbanShell>() { Column = x=>x.Number })
  18. .Add(new MobileGridTextColumn<KanbanShell>() { Column = x=>x.Title })
  19. .Add(new MobileGridTextColumn<KanbanShell>() { Column = x=>x.TypeName })
  20. .Add(new MobileGridDateColumn<KanbanShell>() { Column = x=>x.DueDate, Format = "dd MMM yy"})
  21. .EndUpdate();
  22. },
  23. (args) =>
  24. {
  25. App.Data.Kanbans.SelectFilter(args.Filter);
  26. var result = App.Data.Kanbans.Refresh(args.Force);
  27. args.LastUpdated = App.Data.Kanbans.LastUpdated;
  28. return result;
  29. },
  30. (items) => action?.Invoke(items.FirstOrDefault() as KanbanShell)
  31. ) { }
  32. }
  33. }