using System; using System.IO; using System.Linq; using Comal.Classes; using InABox.Clients; using InABox.Core; using System.Diagnostics.CodeAnalysis; using Syncfusion.XForms.EffectsView; using Xamarin.Forms; namespace comal.timesheets { public class DeliveryDetailModel : DetailModel { public DeliveryDetailModel(IModelHost host, Func> filter, bool transient = false) : base(host, filter, transient) { } public DeliveryDetailModel(IModelHost host, Func> filter, [NotNull] String filename) : base(host, filter, filename) { } public DeliveryDetailItemShell[] Dockets { get; private set; } public DeliveryDocumentShell[] Documents { get; private set; } public override void BeforeLoad(MultiQuery query) { base.BeforeLoad(query); query.Add( new Filter(x => x.Delivery.ID).InQuery(Filter(), x => x.ID), DeliveryDetailItemShell.Columns.Columns ); query.Add( new Filter(x => x.EntityLink.ID).InQuery(Filter(), x => x.ID), DeliveryDocumentShell.Columns.Columns ); } public override void AfterLoad(MultiQuery query) { base.AfterLoad(query); Dockets = query.Get() .Rows .Select(r => new DeliveryDetailItemShell() { Row = r, Parent = this }) .ToArray(); Documents = query.Get() .Rows .Select(r => new DeliveryDocumentShell() { Row = r, Parent = this }) .ToArray(); } protected override void Initialize() { base.Initialize(); Dockets = new DeliveryDetailItemShell[] { }; Documents = new DeliveryDocumentShell[] { }; } } }