using System;
using System.Windows.Controls;
using Comal.Classes;
using InABox.Clients;
using InABox.Core;
namespace PRSDesktop
{
public enum DeliveryFilter
{
UnAssigned,
Booked,
Open
}
///
/// Interaction logic for DeliveryList.xaml
///
public partial class DeliveryDock : UserControl, IDockPanel
{
public DeliveryDock()
{
InitializeComponent();
Filter = DeliveryFilter.UnAssigned;
}
public DeliveryFilter Filter { get; set; }
public void Setup()
{
}
public void Refresh()
{
Deliveries.ItemsSource = null;
if (Filter == DeliveryFilter.UnAssigned)
{
new Client().Load(
new Filter(x => x.Assignment).NotLinkValid(),
new SortOrder(x => x.Due),
(d, e) => { Dispatcher.Invoke(() => { Deliveries.ItemsSource = d; }); }
);
}
else if (Filter == DeliveryFilter.Booked)
{
new Client().Load(
new Filter(x => x.Completed).IsEqualTo(DateTime.MinValue).And(x => x.Assignment).LinkValid(),
new SortOrder(x => x.Due),
(d, e) => { Dispatcher.Invoke(() => { Deliveries.ItemsSource = d; }); }
);
}
else if (Filter == DeliveryFilter.Open)
{
var today = new Filter(x => x.Completed).IsEqualTo(DateTime.MinValue);
today.Ors.Add(new Filter(x => x.Completed).IsGreaterThanOrEqualTo(DateTime.Today).And(x => x.Completed)
.IsLessThan(DateTime.Today.AddDays(1)));
new Client().Load(
today,
new SortOrder(x => x.Due),
(d, e) => { Dispatcher.Invoke(() => { Deliveries.ItemsSource = d; }); }
);
}
}
//Point startpoint = new Point();
//private void Deliveries_PreviewMouseDown(object sender, MouseButtonEventArgs e)
//{
// if (e.LeftButton == MouseButtonState.Pressed)
// startpoint = e.GetPosition(null);
//}
//private void Deliveries_PreviewMouseMove(object sender, MouseEventArgs e)
//{
// if (Deliveries.SelectedItem == null)
// return;
// Vector diff = startpoint - e.GetPosition(null);
// if (e.LeftButton == MouseButtonState.Pressed &&
// (Math.Abs(diff.X) > SystemParameters.MinimumHorizontalDragDistance ||
// Math.Abs(diff.Y) > SystemParameters.MinimumVerticalDragDistance))
// {
// DataObject dragData = new DataObject("Delivery", Deliveries.SelectedItem);
// DragDrop.DoDragDrop(Deliveries, dragData, DragDropEffects.Copy);
// }
//}
//private void Deliveries_PreviewMouseUp(object sender, MouseButtonEventArgs e)
//{
// startpoint = new Point();
//}
}
}