using System; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.Linq; using Comal.Classes; using InABox.Core; using InABox.Mobile; using JetBrains.Annotations; using Xamarin.CommunityToolkit.ObjectModel; namespace PRS.Mobile { public class ActivityModel : CoreRepository { public ActivityModel(IModelHost host, Func>? filter = null, Func? cachefilename = null) : base(host, filter, cachefilename) { } protected override void Initialize() { base.Initialize(); Forms = new ObservableRangeCollection(); } public ObservableRangeCollection Forms { get; private set; } protected override void BeforeLoad(MultiQuery query) { base.BeforeLoad(query); query.Add( new Filter(x=>x.Form.Active).IsEqualTo(true) .And(x=>x.Activity.ID).InQuery(EffectiveFilter(), x=>x.Activity.ID), GetColumns() ); } protected override void AfterLoad(MultiQuery query) { base.AfterLoad(query); Forms.ReplaceRange( query.Get() .Rows .Select(x => new ActivityFormShell() { Row = x, Parent = this }) .ToArray() ); } } }