private List<Orders> BuildOrders(List<ItemFlow> itemFlows, bool isEmergency)
{
if (itemFlows == null || itemFlows.Count == 0)
return null;
var query =
from i in itemFlows
where i.IsEmergency == isEmergency || (!isEmergency && i.Flow.IsUpdateWindowTime)
group i by i.Flow into g
select new Orders
{
Flow = g.Key,
IsEmergency = isEmergency,
ItemFlows = g.Where(i => i.OrderQty > 0 && i.IsEmergency == isEmergency).ToList(),
WindowTime = this.GetWindowTime(g.Key, isEmergency),
StartTime = this.GetStartTime(g.Key, isEmergency)
};
return query.ToList();
}