using Comal.Classes; using InABox.Clients; using InABox.Core; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Linq.Expressions; using System.Threading.Tasks; using Syncfusion.SfRangeSlider.XForms; using Syncfusion.XForms.ComboBox; using Xamarin.Forms; using Xamarin.Forms.Xaml; namespace comal.timesheets { [XamlCompilation(XamlCompilationOptions.Compile)] public partial class EquipmentList : ContentPage { string currentFilter = ""; public EquipmentList() { InitializeComponent(); NavigationPage.SetHasBackButton(this, false); try { DataModel.Load( new Filter(x => x.GroupLink.Code).IsNotEqualTo("ZZINACTIVE"), (Action)(() => { filterOptionsControl.Options.AddRange(DataModel.GroupNames); filterOptionsControl.CreateRadioButtonsAndSetDefault("All"); currentFilter = "All"; filterOptionsControl.OnFilterOptionChanged += FilterOptionsControl_OnFilterOptionChanged; }) ); } catch (Exception e) { string error = e.Message; } } private void BackBtn_Clicked(object sender, EventArgs e) { Navigation.PopAsync(); } private void FilterOptionsControl_OnFilterOptionChanged(string filterOption) { currentFilter = filterOption; Search(filterOption); } private void Search(string option) { String text = String.IsNullOrWhiteSpace(searchEnt.Text) ? "" : searchEnt.Text.ToUpper(); if (option == "All") DataModel.Search(item => String.IsNullOrWhiteSpace(text) || item.Description.ToUpper().Contains(text) ); else DataModel.Search(item => String.Equals(item.GroupName, option) && (String.IsNullOrWhiteSpace(text) || item.Description.ToUpper().Contains(text)) ); } private void SearchEnt_Changed(object sender, EventArgs e) { Search(currentFilter); } private void Equipment_Tapped(object sender, EventArgs e) { EquipmentListDataModelItem item = listView.SelectedItem as EquipmentListDataModelItem; LoadEquipmentOnTap(item.ID); } private void LoadEquipmentOnTap(Guid id) { // var equipment = new Client().Query( // new Filter(x => x.ID).IsEqualTo(id), // new Columns(x => x.ID) // .Add(x => x.GroupLink.ID) // .Add(x => x.GroupLink.Description) // .Add(x => x.GroupLink.Code) // .Add(x => x.Description) // .Add(x => x.Notes) // .Add(x => x.SpecificationSheet.ID) // ).Rows.FirstOrDefault()?.ToObject(); if (id != Guid.Empty) { EquipmentDetailsPage page = new EquipmentDetailsPage(id); Navigation.PushAsync(page); } } } }