using System; using System.Collections.Generic; using System.Linq; using Xamarin.Forms; using Comal.Classes; using InABox.Core; using InABox.Clients; using System.Threading.Tasks; using XF.Material.Forms.UI.Dialogs; namespace comal.timesheets { public class EquipmentModel { public string ID { get; set; } public String Description { get; set; } } public partial class BTInfoPage : ContentPage { public BTInfoPage() { InitializeComponent(); NavigationPage.SetHasBackButton(this, false); ToolbarItems.Clear(); ToolbarItems.Add(new ToolbarItem("Back", "", () => { Navigation.PopAsync(); })); Title = "Site Equipment"; TimeStamp.Text = String.Format("{0:dd/MM/yy hh:mm:ss tt}", App.Bluetooth,TimeStamp); } protected override async void OnAppearing() { base.OnAppearing(); await LoadData(); } private async Task LoadData() { using (await MaterialDialog.Instance.LoadingDialogAsync(message: "Loading Data")) { List equipmodels = new List(); CoreTable trackers = new Client().Query(null, new Columns(x => x.ID, x => x.DeviceID), null); CoreTable equip = new Client().Query( new Filter(x => x.TrackerLink.ID).IsNotEqualTo(Guid.Empty), new Columns(x => x.TrackerLink.ID, x => x.Code, x => x.Description), new SortOrder(x => x.Code) ); if (App.Bluetooth.Devices != null) { foreach (String id in App.Bluetooth.Devices) //foreach (DataRow tracker in trackers.Rows) { CoreRow tracker = trackers.Rows.FirstOrDefault(r => r.Get(x => x.DeviceID) == id); if (tracker != null) { EquipmentModel model = new EquipmentModel() { ID = id, Description = "Unallocated" }; CoreRow equiprow = equip.Rows.FirstOrDefault(r => r.Get(x => x.TrackerLink.ID) == tracker.Get(x => x.ID)); if (equiprow != null) model.Description = equiprow.Get(x => x.Description); equipmodels.Add(model); } } } Device.BeginInvokeOnMainThread( () => { EquipList.ItemsSource = null; EquipList.ItemsSource = equipmodels; } ); } } } }