private string GetSortSuffix(NodeContainerSideEnum side, NodeContainerSideEnum connectedToSide, ushort connectedToStructureIndex)
        {
            ushort reverseIndexPos = 5000;

            if (side == NodeContainerSideEnum.North && connectedToSide == NodeContainerSideEnum.East)
            {
                return((reverseIndexPos - connectedToStructureIndex).ToString("D7"));
            }

            if (side == NodeContainerSideEnum.East && connectedToSide == NodeContainerSideEnum.North)
            {
                return((reverseIndexPos - connectedToStructureIndex).ToString("D7"));
            }

            if (side == NodeContainerSideEnum.South && connectedToSide == NodeContainerSideEnum.West)
            {
                return((reverseIndexPos - connectedToStructureIndex).ToString("D7"));
            }

            if (side == NodeContainerSideEnum.West && connectedToSide == NodeContainerSideEnum.South)
            {
                return((reverseIndexPos - connectedToStructureIndex).ToString("D7"));
            }

            if (side == NodeContainerSideEnum.West && connectedToSide == NodeContainerSideEnum.East)
            {
                return((reverseIndexPos - connectedToStructureIndex).ToString("D7"));
            }

            if (side == NodeContainerSideEnum.East && connectedToSide == NodeContainerSideEnum.West)
            {
                return((reverseIndexPos - connectedToStructureIndex).ToString("D7"));
            }


            return(connectedToStructureIndex.ToString("D7"));
        }
Beispiel #2
0
        private bool SidesAreOppsite(NodeContainerSideEnum nodeContainerIngoingSide1, NodeContainerSideEnum nodeContainerIngoingSide2)
        {
            if (nodeContainerIngoingSide1 == NodeContainerSideEnum.West && nodeContainerIngoingSide2 == NodeContainerSideEnum.East)
            {
                return(true);
            }

            if (nodeContainerIngoingSide1 == NodeContainerSideEnum.North && nodeContainerIngoingSide2 == NodeContainerSideEnum.South)
            {
                return(true);
            }

            if (nodeContainerIngoingSide1 == NodeContainerSideEnum.East && nodeContainerIngoingSide2 == NodeContainerSideEnum.West)
            {
                return(true);
            }

            if (nodeContainerIngoingSide1 == NodeContainerSideEnum.South && nodeContainerIngoingSide2 == NodeContainerSideEnum.North)
            {
                return(true);
            }

            return(false);
        }
Beispiel #3
0
        private void AffixSpanEquipmentToContainer(Guid spanEquipmentId, Guid nodeContainerId, NodeContainerSideEnum side)
        {
            var affixConduitToContainerCommand = new AffixSpanEquipmentToNodeContainer(Guid.NewGuid(), new UserContext("test", Guid.Empty),
                                                                                       spanEquipmentOrSegmentId: spanEquipmentId,
                                                                                       nodeContainerId: nodeContainerId,
                                                                                       nodeContainerIngoingSide: side
                                                                                       );

            var affixResult = _commandDispatcher.HandleAsync <AffixSpanEquipmentToNodeContainer, Result>(affixConduitToContainerCommand).Result;

            if (affixResult.IsFailed)
            {
                throw new ApplicationException(affixResult.Errors.First().Message);
            }
        }
        private Result AffixSpanEquipmentToContainer(Guid routeNodeId, Guid spanEquipmentId, Guid nodeContainerId, NodeContainerSideEnum side)
        {
            Guid correlationId = Guid.NewGuid();

            var commandUserContext = new UserContext("conversion", _workTaskId)
            {
                EditingRouteNodeId = routeNodeId
            };

            var affixConduitToContainerCommand = new AffixSpanEquipmentToNodeContainer(correlationId, commandUserContext,
                                                                                       spanEquipmentOrSegmentId: spanEquipmentId,
                                                                                       nodeContainerId: nodeContainerId,
                                                                                       nodeContainerIngoingSide: side
                                                                                       );

            var affixResult = _commandDispatcher.HandleAsync <AffixSpanEquipmentToNodeContainer, Result>(affixConduitToContainerCommand).Result;

            return(affixResult);
        }