using System; using System.Collections.Generic; using System.Linq; using Comal.Classes; using InABox.Core; using InABox.Mobile; using System.Diagnostics.CodeAnalysis; namespace PRS.Mobile { public class DigitalFormModel : CoreRepository { public DigitalFormModel(IModelHost host, Func>? filter = null, Func? cachefilename = null) : base(host, filter, cachefilename) { } protected override void Initialize() { base.Initialize(); Layouts = new CoreObservableCollection(); //_documents = new CoreObservableCollection(); } public CoreObservableCollection Layouts { get; private set; } //private CoreObservableCollection _documents; //public IEnumerable Documents => _documents; // public override Columns<(.+)> Columns => DigitalFormShell.Columns.Columns; protected override void BeforeLoad(MultiQuery query) { base.BeforeLoad(query); query.Add( new Filter(x => x.Form.ID).InQuery(EffectiveFilter(), x => x.Form.ID) .And(x => x.Type).IsEqualTo(DFLayoutType.Mobile) .And(x => x.Active).IsEqualTo(true), GetColumns() ); //query.Add( // new Filter(x => x.EntityLink.ID).InQuery(EffectiveFilter(), x => x.Form.ID), // GetColumns() //); } protected override void AfterLoad(MultiQuery query) { base.AfterLoad(query); Layouts.ReplaceRange( query.Get() .Rows .Select(x => new DigitalFormLayoutShell() { Row = x, Parent = this }) .ToArray() ); //_documents.ReplaceRange( // query.Get() // .Rows // .Select(x => new DigitalFormDocumentShell() { Row = x, Parent = this }) // .ToArray() //); } } }