In my organization I work on orders based on date, so earliest work orders first. We also have an option for order to be marked "priority" in which case those orders are done first but not always.
I've asked my boss some questions and I couldn't get answer that made sense...
If one order has today's date, and another order has tomorrows date but is marked priority, which order should I work on first? He said the order marked "priority".
If one order has today's date, and another order is dated 14 days from today and is marked priority, which order should I work on first? He said the one that has today's date.
So the problem is properly placing the order in queue, but it's not something they have an exact formula for.
If I was to make a class that only has two properties...
public class WorkOrder
{
public DateTime dueDate;
public bool isPriority;
}
What would be the most straightforward way to put them in queue?
C5.IntervalHeap<T>
, or here or here, or maybe even here.