KanbanEditViewModel.cs 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. using System;
  2. using System.Collections.ObjectModel;
  3. using System.Threading.Tasks;
  4. using Comal.Classes;
  5. using InABox.Core;
  6. using InABox.Mobile;
  7. using Syncfusion.XForms.Buttons;
  8. using Xamarin.Forms;
  9. namespace PRS.Mobile
  10. {
  11. public class KanbanEditViewModel : MobileViewModel<Kanban, IKanbanShell>
  12. {
  13. public KanbanDocumentModel Documents { get; set; }
  14. public KanbanFormModel Forms { get; set; }
  15. public KanbanEditViewModel()
  16. {
  17. Documents = new KanbanDocumentModel(App.Data,
  18. () => new Filter<KanbanDocument>(x => x.EntityLink.ID).IsEqualTo(Item?.ID ?? CoreUtils.FullGuid));
  19. Forms = new KanbanFormModel(App.Data,
  20. () => new Filter<KanbanForm>(x => x.Parent.ID).IsEqualTo(Item?.ID ?? CoreUtils.FullGuid));
  21. }
  22. protected override void DoLoad()
  23. {
  24. var tasks = new Task[]
  25. {
  26. Task.Run(() => Forms.Refresh(true)),
  27. Task.Run(() => Documents.Refresh(true))
  28. };
  29. Task.WaitAll(tasks);
  30. }
  31. public override bool IsChanged => Item == null || Item.ID == Guid.Empty || Item.IsChanged();
  32. }
  33. }