using System; using System.Linq; using InABox.Mobile; using Xamarin.Forms; namespace PRS.Mobile { public class ContactSelectionPage : SelectionPage { public ContactSelectionPage(Action action) : base( (string)"Select Contact", (SelectionPageMode)SelectionPageMode.Immediate, (columns, filters) => { columns .BeginUpdate() .Clear() .Add(new MobileGridTextColumn() { Column = x => x.Name, Width = GridLength.Star }) .Add(new MobileGridTextColumn() { Column = x => x.Street, Width = GridLength.Auto }) .Add(new MobileGridTextColumn() { Column = x => x.City, Width = GridLength.Auto }) .EndUpdate(); }, (args) => { App.Data.Contacts.SelectFilter(args.Filter); var result = App.Data.Contacts.Refresh(args.Force); args.LastUpdated = App.Data.Contacts.LastUpdated; return result; }, (items) => action?.Invoke(items.FirstOrDefault() as ContactShell) ) { } } }