EquipmentGrid.cs 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. using Comal.Classes;
  2. using InABox.Clients;
  3. using InABox.Core;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. namespace comal.timesheets
  10. {
  11. public class EquipmentGrid : MobileDataGrid
  12. {
  13. public EquipmentGrid(DataGridSaveType savetype = DataGridSaveType.None)
  14. {
  15. Task.Run(async () =>
  16. {
  17. CoreTable table = new Client<Equipment>().Query(null,
  18. new Columns<Equipment>(
  19. x => x.ID,
  20. x => x.GroupLink.Description,
  21. x => x.Description,
  22. x => x.TrackerLink.BatteryLevel
  23. )
  24. );
  25. if (!table.Rows.Any())
  26. return;
  27. List<DataGridViewModelItem> shells = new List<DataGridViewModelItem>();
  28. foreach (CoreRow row in table.Rows)
  29. {
  30. List<Tuple<string, string>> tuples = new List<Tuple<string, string>>();
  31. tuples.Add(new Tuple<string, string>("Name", row.Get<Equipment, string>(x => x.Description)));
  32. tuples.Add(new Tuple<string, string>("Group", row.Get<Equipment, string>(x => x.GroupLink.Description)));
  33. tuples.Add(new Tuple<string, string>("Battery", row.Get<Equipment, double>(x => x.TrackerLink.BatteryLevel).ToString()));
  34. shells.Add(new DataGridViewModelItem
  35. (
  36. id: row.Get<Equipment, Guid>(x => x.ID),
  37. data: tuples
  38. ));
  39. }
  40. Setup(shells, typeof(Equipment), savetype);
  41. });
  42. }
  43. }
  44. }