using System; using System.Threading.Tasks; using Comal.Classes; using InABox.Core; using InABox.Mobile; namespace PRS.Mobile { public class RequisitionEditViewModel : MobileViewModel { protected override void DoLoad() { Task[] tasks = new Task[] { Task.Run(() => Items.Refresh(true)), Task.Run(() => Documents.Refresh(true)), }; Task.WaitAll(tasks); } public RequisitionEditMode Mode { get; set; } public RequisitionItemModel Items { get; private set; } public RequisitionDocumentModel Documents { get; private set; } public override bool IsChanged => Item == null || Item.ID == Guid.Empty || Item.IsChanged(); public bool IsMine => Item?.RequestedByID == App.Data.Me.ID; private bool _hideElements; public bool HideElements { get => _hideElements; set { if (value == _hideElements) return; _hideElements = value; OnPropertyChanged(); } } private Filter GetFilter(Filter filter) { if ((Item?.ID ?? Guid.Empty) == Guid.Empty) return new Filter().None(); return filter; } public RequisitionEditViewModel() { Mode = RequisitionEditMode.PickStock; Items = new RequisitionItemModel(App.Data, () => GetFilter(new Filter(x => x.RequisitionLink.ID).IsEqualTo(Item.ID)) ); Documents = new RequisitionDocumentModel(App.Data, () => GetFilter(new Filter(x => x.EntityLink.ID).IsEqualTo(Item.ID)) ); } public void Save() { Item.Save("Saved by PRS Mobile"); OnPropertyChanged(nameof(IsChanged)); } } }