DeliveryDock.xaml.cs 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  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. (d, e) => { Dispatcher.Invoke(() => { Deliveries.ItemsSource = d; }); }
  37. );
  38. }
  39. else if (Filter == DeliveryFilter.Booked)
  40. {
  41. new Client<Delivery>().Load(
  42. new Filter<Delivery>(x => x.Completed).IsEqualTo(DateTime.MinValue).And(x => x.Assignment).LinkValid(),
  43. new SortOrder<Delivery>(x => x.Due),
  44. (d, e) => { Dispatcher.Invoke(() => { Deliveries.ItemsSource = d; }); }
  45. );
  46. }
  47. else if (Filter == DeliveryFilter.Open)
  48. {
  49. var today = new Filter<Delivery>(x => x.Completed).IsEqualTo(DateTime.MinValue);
  50. today.Ors.Add(new Filter<Delivery>(x => x.Completed).IsGreaterThanOrEqualTo(DateTime.Today).And(x => x.Completed)
  51. .IsLessThan(DateTime.Today.AddDays(1)));
  52. new Client<Delivery>().Load(
  53. today,
  54. new SortOrder<Delivery>(x => x.Due),
  55. (d, e) => { Dispatcher.Invoke(() => { Deliveries.ItemsSource = d; }); }
  56. );
  57. }
  58. }
  59. //Point startpoint = new Point();
  60. //private void Deliveries_PreviewMouseDown(object sender, MouseButtonEventArgs e)
  61. //{
  62. // if (e.LeftButton == MouseButtonState.Pressed)
  63. // startpoint = e.GetPosition(null);
  64. //}
  65. //private void Deliveries_PreviewMouseMove(object sender, MouseEventArgs e)
  66. //{
  67. // if (Deliveries.SelectedItem == null)
  68. // return;
  69. // Vector diff = startpoint - e.GetPosition(null);
  70. // if (e.LeftButton == MouseButtonState.Pressed &&
  71. // (Math.Abs(diff.X) > SystemParameters.MinimumHorizontalDragDistance ||
  72. // Math.Abs(diff.Y) > SystemParameters.MinimumVerticalDragDistance))
  73. // {
  74. // DataObject dragData = new DataObject("Delivery", Deliveries.SelectedItem);
  75. // DragDrop.DoDragDrop(Deliveries, dragData, DragDropEffects.Copy);
  76. // }
  77. //}
  78. //private void Deliveries_PreviewMouseUp(object sender, MouseButtonEventArgs e)
  79. //{
  80. // startpoint = new Point();
  81. //}
  82. }
  83. }