MeetingEditViewModel.cs 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. using System;
  2. using System.Threading.Tasks;
  3. using Comal.Classes;
  4. using InABox.Core;
  5. using InABox.Mobile;
  6. namespace PRS.Mobile
  7. {
  8. public class MeetingEditViewModel : MobileViewModel<Assignment, MeetingShell>
  9. {
  10. protected override void DoLoad()
  11. {
  12. Task[] tasks = new Task[]
  13. {
  14. Task.Run(() => Attendees.Refresh(true)),
  15. Task.Run(() => Items.Refresh(true)),
  16. Task.Run(() => Kanbans.Refresh(true)),
  17. Task.Run(() => Documents.Refresh(true))
  18. };
  19. Task.WaitAll(tasks);
  20. }
  21. public MeetingAttendeeModel Attendees { get; }
  22. public MeetingItemModel Items { get; }
  23. public MeetingItemKanbanModel Kanbans { get; }
  24. public MeetingItemDocumentModel Documents { get; }
  25. public MeetingEditViewModel()
  26. {
  27. Attendees = new MeetingAttendeeModel(App.Data,
  28. () => new Filter<Assignment>(x => x.Meeting.Link.ID).IsEqualTo(Item?.MeetingID ?? CoreUtils.FullGuid)
  29. );
  30. Items = new MeetingItemModel(App.Data,
  31. () => new Filter<MeetingItem>(x => x.Meeting.ID).IsEqualTo(Item?.MeetingID ?? CoreUtils.FullGuid)
  32. );
  33. Kanbans = new MeetingItemKanbanModel(App.Data,
  34. () => new Filter<MeetingItemKanban>(x => x.Entity.Meeting.ID).IsEqualTo(Item?.MeetingID ?? CoreUtils.FullGuid)
  35. );
  36. Documents = new MeetingItemDocumentModel(App.Data,
  37. () => new Filter<MeetingItemDocument>(x => x.EntityLink.Meeting.ID).IsEqualTo(Item?.MeetingID ?? CoreUtils.FullGuid)
  38. );
  39. }
  40. public override bool IsChanged => Item == null || Item.ID == Guid.Empty || Item.IsChanged();
  41. }
  42. }