using System; using System.Threading.Tasks; using Comal.Classes; using InABox.Core; using InABox.Mobile; namespace PRS.Mobile { public class ManufacturingPacketEditViewModel : MobileViewModel { public SetoutDocumentModel Documents { get; private set; } public AuditTrailModel AuditTrail { get; private set; } public ManufacturingPacketStageModel Stages { get; private set; } public PurchaseOrderItemModel OrderItems { get; private set; } public ManufacturingPacketEditViewModel() { Documents = new SetoutDocumentModel(App.Data, () => new Filter(x => x.EntityLink.ID).IsEqualTo(Item?.SetoutID ?? CoreUtils.FullGuid)); AuditTrail = new AuditTrailModel(App.Data, () => new Filter(x => x.EntityID).IsEqualTo(Item?.ID ?? CoreUtils.FullGuid)); Stages = new ManufacturingPacketStageModel(App.Data, () => new Filter(x => x.Parent.ID).IsEqualTo(Item?.ID ?? CoreUtils.FullGuid)); OrderItems = new PurchaseOrderItemModel(App.Data, () => new Filter(x => x.ID).IsEqualTo(Item?.OrderID ?? CoreUtils.FullGuid)); } protected override void DoLoad() { var tasks = new Task[] { Task.Run(() => Documents.Refresh(true)), Task.Run(() => AuditTrail.Refresh(true)), Task.Run(() => Stages.Refresh(true)), Task.Run(() => OrderItems.Refresh(true)) }; Task.WaitAll(tasks); } public override bool IsChanged => Item == null || Item.ID == Guid.Empty || Item.IsChanged(); } }