using System; using System.Drawing; using System.Linq; using Comal.Classes; using InABox.Core; using System.Diagnostics.CodeAnalysis; namespace comal.timesheets { public class AssignmentDetailModel : DetailModel { public AssignmentDetailModel(IModelHost host, Func> filter, bool transient = false) : base(host, filter, transient) { } public AssignmentDetailModel(IModelHost host, Func> filter, [NotNull] string filename) : base(host, filter, filename) { } protected override void Initialize() { base.Initialize(); Forms = new AssignmentFormShell[] { }; } public AssignmentFormShell[] Forms { get; private set; } // public override Columns Columns => AssignmentDetailShell.Columns.Columns; public override void BeforeLoad(MultiQuery query) { base.BeforeLoad(query); query.Add( new Filter(x => x.Parent.ID).InQuery(Filter(),x =>x.ID), AssignmentFormShell.Columns.Columns ); } public override void AfterLoad(MultiQuery query) { base.AfterLoad(query); Forms = query.Get() .Rows .Select(row => new AssignmentFormShell() { Row = row, Parent = this }) .ToArray(); } public PointF Coordinates => new PointF( (float)(Item?.Longitude ?? 0), (float)(Item?.Latitude ?? 0) ); } }