SiteManufacturingPackets.xaml.cs 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. using System;
  2. using Comal.Classes;
  3. using InABox.Core;
  4. using InABox.Mobile;
  5. using Xamarin.Forms;
  6. using Xamarin.Forms.Xaml;
  7. namespace PRS.Mobile
  8. {
  9. [XamlCompilation(XamlCompilationOptions.Compile)]
  10. public partial class SiteManufacturingPackets
  11. {
  12. public ManufacturingPacketModel Packets { get; set; }
  13. public Guid JobID { get; set; }
  14. public Guid FactoryID { get; set; }
  15. public SiteManufacturingPackets()
  16. {
  17. InitializeComponent();
  18. }
  19. public event EventHandler RefreshRequested;
  20. public void Refresh()
  21. {
  22. Packets.Search(FilterShell);
  23. _items.ItemsSource ??= Packets.Items;
  24. }
  25. private String _currentFilter;
  26. private void _search_OnTextChanged(object sender, MobileSearchBarTextChangedArgs args)
  27. {
  28. _currentFilter = args.Text.ToUpper();
  29. Refresh();
  30. }
  31. private bool FilterShell(ManufacturingPacketShell shell)
  32. {
  33. bool bOK = (FactoryID == Guid.Empty) || (shell.FactoryID == FactoryID);
  34. bOK = bOK && (
  35. String.IsNullOrWhiteSpace(_currentFilter)
  36. || shell.Title?.ToUpper().Contains(_currentFilter) == true
  37. || shell.JobNumber?.ToUpper().Contains(_currentFilter) == true
  38. || shell.JobName?.ToUpper().Contains(_currentFilter) == true
  39. || shell.Location?.ToUpper().Contains(_currentFilter) == true
  40. || shell.SetoutNumber?.ToUpper().Contains(_currentFilter) == true
  41. || shell.Serial?.ToUpper().Contains(_currentFilter) == true
  42. || shell.WaterMark?.ToUpper().Contains(_currentFilter) == true
  43. );
  44. return bOK;
  45. }
  46. private void ListView_Tapped(object sender, EventArgs e)
  47. {
  48. if ((sender as Frame)?.BindingContext is ManufacturingPacketShell shell)
  49. {
  50. var editor = new ManufacturingPacketEdit()
  51. {
  52. Item = shell
  53. };
  54. Navigation.PushAsync(editor);
  55. }
  56. }
  57. private void _items_OnRefreshRequested(object sender, MobileListRefreshEventArgs args)
  58. {
  59. RefreshRequested?.Invoke(this, EventArgs.Empty);
  60. }
  61. }
  62. }