public List <ILinkDemandAndProvider> GetEdgesFrom(Id nodeId)
        {
            List <ILinkDemandAndProvider> demandAndProviders = new List <ILinkDemandAndProvider>();
            INode  node       = GetNode(nodeId);
            INodes successors = GetSuccessorNodes(nodeId);

            foreach (var successor in successors)
            {
                ILinkDemandAndProvider demandAndProviderLink =
                    GetDemandOrProviderLink(node, successor);
                demandAndProviders.Add(demandAndProviderLink);
            }

            return(demandAndProviders);
        }
        public List <ILinkDemandAndProvider> GetEdgesTo(Id nodeId)
        {
            List <ILinkDemandAndProvider> demandAndProviders = new List <ILinkDemandAndProvider>();
            INode  node         = GetNode(nodeId);
            INodes predecessors = GetPredecessorNodes(nodeId);

            foreach (var predecessor in predecessors)
            {
                ILinkDemandAndProvider demandAndProviderLink =
                    GetDemandOrProviderLink(predecessor, node);
                demandAndProviders.Add(demandAndProviderLink);
            }

            return(demandAndProviders);
        }
Пример #3
0
 public void DeleteA(ILinkDemandAndProvider demandAndProviderLink)
 {
     if (demandAndProviderLink.GetType() == typeof(T_DemandToProvider))
     {
         DemandToProviderDelete((T_DemandToProvider)demandAndProviderLink);
     }
     else if (demandAndProviderLink.GetType() == typeof(T_ProviderToDemand))
     {
         ProviderToDemandDelete((T_ProviderToDemand)demandAndProviderLink);
     }
     else
     {
         throw new MrpRunException("This type is not expected.");
     }
 }
 public void AddAll(LinkDemandAndProviderTable linkDemandAndProviderTable)
 {
     if (linkDemandAndProviderTable.Any())
     {
         ILinkDemandAndProvider linkDemandAndProvider = linkDemandAndProviderTable.GetAny();
         if (linkDemandAndProvider.GetType() == typeof(T_DemandToProvider))
         {
             _demandToProviderTable.AddAll(linkDemandAndProviderTable);
         }
         else if (linkDemandAndProvider.GetType() == typeof(T_ProviderToDemand))
         {
             _providerToDemandTable.AddAll(linkDemandAndProviderTable);
         }
         else
         {
             throw new MrpRunException("Unexpected type.");
         }
     }
 }
Пример #5
0
 public Edge(ILinkDemandAndProvider demandToProvider, INode tailNode, INode toNode)
 {
     _demandToProvider = demandToProvider;
     TailNode          = tailNode;
     HeadNode          = toNode;
 }