public GanttChart(IDirectedGraph <INode> orderOperationGraph) { Dictionary <Id, List <Interval> > groups = new Dictionary <Id, List <Interval> >(); foreach (var graphNode in orderOperationGraph.GetNodes()) { IScheduleNode node = graphNode.GetNode().GetEntity(); if (node.GetType() != typeof(ProductionOrderOperation) && node.GetType() != typeof(PurchaseOrderPart)) { continue; } GanttChartBar ganttChartBar = new GanttChartBar(); ganttChartBar.operation = node.GetId().ToString(); ganttChartBar.operationId = node.GetId().ToString(); ganttChartBar.resource = DetermineFreeGroup(groups, new Interval(node.GetId(), node.GetStartTimeBackward(), node.GetEndTimeBackward())).ToString(); ; ganttChartBar.start = node.GetStartTimeBackward().GetValue().ToString(); ganttChartBar.end = node.GetEndTimeBackward().GetValue().ToString(); ganttChartBar.groupId = ganttChartBar.resource; AddGanttChartBar(ganttChartBar); } }
private ILinkDemandAndProvider GetDemandOrProviderLink(INode tailGraphNode, INode headGraphNode) { ILinkDemandAndProvider demandAndProviderLink; IScheduleNode tail = tailGraphNode.GetEntity(); if (tail is Demand) { demandAndProviderLink = new T_DemandToProvider(tail.GetId(), headGraphNode.GetEntity().GetId(), null); } else if (tail is Provider) { demandAndProviderLink = new T_ProviderToDemand(tail.GetId(), headGraphNode.GetEntity().GetId(), null); } else { throw new MrpRunException("Not expected type."); } return(demandAndProviderLink); }
/** * put one of the other classes inheriting INode in it like ProductionOrder... */ public Node(IScheduleNode entity) { _entity = entity; _id = entity.GetId(); }