EquipmentList.xaml.cs 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. using Comal.Classes;
  2. using InABox.Clients;
  3. using InABox.Core;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.IO;
  7. using System.Linq;
  8. using System.Linq.Expressions;
  9. using System.Threading.Tasks;
  10. using Syncfusion.SfRangeSlider.XForms;
  11. using Syncfusion.XForms.ComboBox;
  12. using Xamarin.Forms;
  13. using Xamarin.Forms.Xaml;
  14. namespace comal.timesheets
  15. {
  16. [XamlCompilation(XamlCompilationOptions.Compile)]
  17. public partial class EquipmentList : ContentPage
  18. {
  19. string currentFilter = "";
  20. public EquipmentList()
  21. {
  22. InitializeComponent();
  23. NavigationPage.SetHasBackButton(this, false);
  24. try
  25. {
  26. DataModel.Load(
  27. new Filter<Equipment>(x => x.GroupLink.Code).IsNotEqualTo("ZZINACTIVE"),
  28. (Action)(() =>
  29. {
  30. filterOptionsControl.Options.AddRange(DataModel.GroupNames);
  31. filterOptionsControl.CreateRadioButtonsAndSetDefault("All");
  32. currentFilter = "All";
  33. filterOptionsControl.OnFilterOptionChanged += FilterOptionsControl_OnFilterOptionChanged;
  34. })
  35. );
  36. }
  37. catch (Exception e)
  38. {
  39. string error = e.Message;
  40. }
  41. }
  42. private void BackBtn_Clicked(object sender, EventArgs e)
  43. {
  44. Navigation.PopAsync();
  45. }
  46. private void FilterOptionsControl_OnFilterOptionChanged(string filterOption)
  47. {
  48. currentFilter = filterOption;
  49. Search(filterOption);
  50. }
  51. private void Search(string option)
  52. {
  53. String text = String.IsNullOrWhiteSpace(searchEnt.Text) ? "" : searchEnt.Text.ToUpper();
  54. if (option == "All")
  55. DataModel.Search(item =>
  56. String.IsNullOrWhiteSpace(text) || item.Description.ToUpper().Contains(text)
  57. );
  58. else
  59. DataModel.Search(item =>
  60. String.Equals(item.GroupName, option) && (String.IsNullOrWhiteSpace(text) || item.Description.ToUpper().Contains(text))
  61. );
  62. }
  63. private void SearchEnt_Changed(object sender, EventArgs e)
  64. {
  65. Search(currentFilter);
  66. }
  67. private void Equipment_Tapped(object sender, EventArgs e)
  68. {
  69. EquipmentListDataModelItem item = listView.SelectedItem as EquipmentListDataModelItem;
  70. LoadEquipmentOnTap(item.ID);
  71. }
  72. private void LoadEquipmentOnTap(Guid id)
  73. {
  74. // var equipment = new Client<Equipment>().Query(
  75. // new Filter<Equipment>(x => x.ID).IsEqualTo(id),
  76. // new Columns<Equipment>(x => x.ID)
  77. // .Add(x => x.GroupLink.ID)
  78. // .Add(x => x.GroupLink.Description)
  79. // .Add(x => x.GroupLink.Code)
  80. // .Add(x => x.Description)
  81. // .Add(x => x.Notes)
  82. // .Add(x => x.SpecificationSheet.ID)
  83. // ).Rows.FirstOrDefault()?.ToObject<Equipment>();
  84. if (id != Guid.Empty)
  85. {
  86. EquipmentDetailsPage page = new EquipmentDetailsPage(id);
  87. Navigation.PushAsync(page);
  88. }
  89. }
  90. }
  91. }