using System; using System.Linq; using InABox.Mobile; using Xamarin.Forms; namespace PRS.Mobile { public class JobSelectionPage : SelectionPage { public JobSelectionPage(Action action) : base( "Select Job", SelectionPageMode.Immediate, (columns, filters) => { columns .BeginUpdate() .Clear() .Add(new MobileGridTextColumn() { Column = x => x.JobNumber, Width = 100, Alignment = TextAlignment.Center }) .Add(new MobileGridTextColumn() { Column = x => x.Name, Width = GridLength.Star, Alignment = TextAlignment.Start }) .EndUpdate(); filters.AddRange(App.Data.Jobs.AvailableFilters().Select(x=>x.Name)); }, (args) => { App.Data.Jobs.SelectFilter(args.Filter); var result = App.Data.Jobs.Refresh(args.Force); args.LastUpdated = App.Data.Jobs.LastUpdated; return result; }, (items) => action?.Invoke(items.FirstOrDefault() as JobShell) ) { } } }