DeliveryDock.xaml.cs 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. using System;
  2. using System.Windows.Controls;
  3. using Comal.Classes;
  4. using InABox.Clients;
  5. using InABox.Core;
  6. namespace PRSDesktop
  7. {
  8. public enum DeliveryFilter
  9. {
  10. UnAssigned,
  11. Booked,
  12. Open
  13. }
  14. /// <summary>
  15. /// Interaction logic for DeliveryList.xaml
  16. /// </summary>
  17. public partial class DeliveryDock : UserControl, IDockPanel
  18. {
  19. public DeliveryDock()
  20. {
  21. InitializeComponent();
  22. Filter = DeliveryFilter.UnAssigned;
  23. }
  24. public DeliveryFilter Filter { get; set; }
  25. public void Setup()
  26. {
  27. }
  28. public void Refresh()
  29. {
  30. Deliveries.ItemsSource = null;
  31. if (Filter == DeliveryFilter.UnAssigned)
  32. {
  33. new Client<Delivery>().Load(
  34. new Filter<Delivery>(x => x.Assignment).NotLinkValid(),
  35. new SortOrder<Delivery>(x => x.Due),
  36. CoreRange.All,
  37. (d, e) => { Dispatcher.Invoke(() => { Deliveries.ItemsSource = d; }); }
  38. );
  39. }
  40. else if (Filter == DeliveryFilter.Booked)
  41. {
  42. new Client<Delivery>().Load(
  43. new Filter<Delivery>(x => x.Completed).IsEqualTo(DateTime.MinValue).And(x => x.Assignment).LinkValid(),
  44. new SortOrder<Delivery>(x => x.Due),
  45. CoreRange.All,
  46. (d, e) => { Dispatcher.Invoke(() => { Deliveries.ItemsSource = d; }); }
  47. );
  48. }
  49. else if (Filter == DeliveryFilter.Open)
  50. {
  51. var today = new Filter<Delivery>(x => x.Completed).IsEqualTo(DateTime.MinValue);
  52. today.Ors.Add(new Filter<Delivery>(x => x.Completed).IsGreaterThanOrEqualTo(DateTime.Today).And(x => x.Completed)
  53. .IsLessThan(DateTime.Today.AddDays(1)));
  54. new Client<Delivery>().Load(
  55. today,
  56. new SortOrder<Delivery>(x => x.Due),
  57. CoreRange.All,
  58. (d, e) => { Dispatcher.Invoke(() => { Deliveries.ItemsSource = d; }); }
  59. );
  60. }
  61. }
  62. //Point startpoint = new Point();
  63. //private void Deliveries_PreviewMouseDown(object sender, MouseButtonEventArgs e)
  64. //{
  65. // if (e.LeftButton == MouseButtonState.Pressed)
  66. // startpoint = e.GetPosition(null);
  67. //}
  68. //private void Deliveries_PreviewMouseMove(object sender, MouseEventArgs e)
  69. //{
  70. // if (Deliveries.SelectedItem == null)
  71. // return;
  72. // Vector diff = startpoint - e.GetPosition(null);
  73. // if (e.LeftButton == MouseButtonState.Pressed &&
  74. // (Math.Abs(diff.X) > SystemParameters.MinimumHorizontalDragDistance ||
  75. // Math.Abs(diff.Y) > SystemParameters.MinimumVerticalDragDistance))
  76. // {
  77. // DataObject dragData = new DataObject("Delivery", Deliveries.SelectedItem);
  78. // DragDrop.DoDragDrop(Deliveries, dragData, DragDropEffects.Copy);
  79. // }
  80. //}
  81. //private void Deliveries_PreviewMouseUp(object sender, MouseButtonEventArgs e)
  82. //{
  83. // startpoint = new Point();
  84. //}
  85. }
  86. }