public Task <Result <Diagram> > GetDiagram(Guid routeNetworkElementId)
        {
            _routeNetworkElementId = routeNetworkElementId;

            var fetchNeedeDataResult = RouteNetworkElementRelatedData.FetchData(_queryDispatcher, routeNetworkElementId);

            if (fetchNeedeDataResult.IsFailed)
            {
                return(Task.FromResult(Result.Fail <Diagram>(fetchNeedeDataResult.Errors.First())));
            }
            else
            {
                _data = fetchNeedeDataResult.Value;
            }

            // If no equipment found, just return an empty diagram
            if (_data.SpanEquipments.Count == 0 && _data.NodeContainer == null)
            {
                return(Task.FromResult(Result.Ok <Diagram>(new Diagram())));
            }

            double yOffset = 0;

            yOffset = AddDetachedSpanEquipmentsToDiagram(yOffset);
            yOffset = AddNodeContainerToDiagram(yOffset);

            // order by drawing order
            _diagram.OrderDiagramObjects();


            return(Task.FromResult((Result.Ok <Diagram>(_diagram))));
        }
        public static bool IsPassThrough(this SpanEquipment spanEquipment, RouteNetworkElementRelatedData data)
        {
            if (spanEquipment.NodesOfInterestIds.First() != data.RouteNetworkElementId && spanEquipment.NodesOfInterestIds.Last() != data.RouteNetworkElementId)
            {
                return(true);
            }

            return(false);
        }
Example #3
0
        public NodeContainerViewModel(RouteNetworkElementRelatedData data)
        {
            _data = data;

            if (_data.NodeContainer == null)
            {
                throw new ApplicationException("This view model requires a RouteNetworkElementRelatedData object with a non-null NodeContainer object!");
            }

            NodeContainer = _data.NodeContainer;
        }
        public static bool IsAttachedToNodeContainer(this SpanEquipment spanEquipment, RouteNetworkElementRelatedData data)
        {
            if (data.NodeContainer == null)
            {
                return(false);
            }

            if (spanEquipment.NodeContainerAffixes != null)
            {
                foreach (var affix in spanEquipment.NodeContainerAffixes)
                {
                    if (affix.NodeContainerId == data.NodeContainer.Id)
                    {
                        return(true);
                    }
                }
            }

            return(false);
        }
 public static bool IsMultiLevel(this SpanEquipment spanEquipment, RouteNetworkElementRelatedData data)
 {
     return(data.SpanEquipmentSpecifications[spanEquipment.SpecificationId].IsMultiLevel);
 }