コード例 #1
0
 private void CreateNodeContainer(NetworkEvent.NodeAdded nodeAdded)
 {
     nodeAdded.Node.Switch(
         gateway => gatewayNodeFactory.Create(nodeAdded.Node.Id),
         router => routerNodeFactory.Create(nodeAdded.Node.Id),
         consumer => consumerNodeFactory.Create(nodeAdded.Node.Id)
         );
 }
 private static object ToNodeAddedEventTransport(this NetworkEvent.NodeAdded source)
 {
     return(new NodeAddedEventTransport
     {
         NodeID = new SerializableGuid(source.Node.Id.Value),
         PositionX = source.Node.Position.X,
         PositionY = source.Node.Position.Y,
         QueueContent = source.Node.Queue.Content.Select(x => new SerializableGuid(x.Value)).ToList(),
         QueueCapacity = source.Node.Queue.Capacity,
         TopPortLinkIdentifier = new SerializableGuid(source.Node.Ports.GetLinkIdentifier(PortDirection.Top)),
         TopPortConnectionDirection = source.Node.Ports.GetLinkDirection(PortDirection.Top),
         BottomPortLinkIdentifier = new SerializableGuid(source.Node.Ports.GetLinkIdentifier(PortDirection.Bottom)),
         BottomPortConnectionDirection = source.Node.Ports.GetLinkDirection(PortDirection.Bottom),
         LeftPortLinkIdentifier = new SerializableGuid(source.Node.Ports.GetLinkIdentifier(PortDirection.Left)),
         LeftPortConnectionDirection = source.Node.Ports.GetLinkDirection(PortDirection.Left),
         RightPortLinkIdentifier = new SerializableGuid(source.Node.Ports.GetLinkIdentifier(PortDirection.Right)),
         RightPortConnectionDirection = source.Node.Ports.GetLinkDirection(PortDirection.Right),
         RouterState = source.Node.Match(
             gateway => Enumerable.Empty <int>().ToArray(),
             router => new[] { router.State[PacketType.Red], router.State[PacketType.Blue], router.State[PacketType.Green] }.Select(x => (int)x).ToArray(),
             consumer => Enumerable.Empty <int>().ToArray())
     });
 }