コード例 #1
0
        private static DiagramNodeDto BuildDiagramNodeDto(VertexControl vertexControl)
        {
            if (vertexControl == null)
            {
                throw new ArgumentNullException(nameof(vertexControl));
            }
            var outputNodeDto = new DiagramNodeDto();
            var node          = vertexControl.Vertex as ArrowGraphVertex;

            if (node != null)
            {
                outputNodeDto.Id = Convert.ToInt32(node.ID);
                Point point = vertexControl.GetPosition();
                outputNodeDto.X      = point.X;
                outputNodeDto.Y      = point.Y;
                outputNodeDto.Height = vertexControl.ActualHeight;
                outputNodeDto.Width  = vertexControl.ActualWidth;
                Color fillColor = ((SolidColorBrush)vertexControl.Background).Color;
                outputNodeDto.FillColorHexCode =
                    DtoConverter.HexConverter(fillColor.R, fillColor.G, fillColor.B);
                Color borderColor = ((SolidColorBrush)vertexControl.BorderBrush).Color;
                outputNodeDto.BorderColorHexCode =
                    DtoConverter.HexConverter(borderColor.R, borderColor.G, borderColor.B);
                outputNodeDto.Text = node.ToString();
            }
            return(outputNodeDto);
        }
コード例 #2
0
        public async Task <IActionResult> Diagram(long?id)
        {
            var powerPlant = await _dbContext.PowerPlants.Where(p => p.Id == id).FirstOrDefaultAsync();

            var ppUnitList = await _dbContext.PowerPlantUnits.Where(p => p.PowerPlantId == id).ToListAsync();

            var unitIds          = ppUnitList.Select(e => e.Id).ToArray();
            var electrometerList = await _dbContext.Electrometers.Where(e => unitIds.Contains(e.PowerPlantUnitId.Value)).ToListAsync();

            var diagramData = new DiagramNodeDto()
            {
                name     = powerPlant.Name,
                children = ppUnitList.Select(u => new DiagramNodeDto {
                    name     = u.Name,
                    children = electrometerList.Where(e => e.PowerPlantUnitId == u.Id).Select(e => new DiagramNodeDto
                    {
                        name = e.Name
                    }).ToList()
                }).ToList()
            };

            return(View(diagramData));
        }
コード例 #3
0
        private static graphmlGraphNode BuildArrowGraphNode(DiagramNodeDto diagramNodeDto)
        {
            if (diagramNodeDto == null)
            {
                throw new ArgumentNullException(nameof(diagramNodeDto));
            }
            var outputNode = new graphmlGraphNode
            {
                id   = FormatArrowGraphNodeId(diagramNodeDto.Id),
                data = new data
                {
                    key       = "d6",
                    ShapeNode = new ShapeNode
                    {
                        Geometry = new ShapeNodeGeometry
                        {
                            height = diagramNodeDto.Height.ToString(CultureInfo.InvariantCulture),
                            width  = diagramNodeDto.Width.ToString(CultureInfo.InvariantCulture),
                            x      = diagramNodeDto.X.ToString(CultureInfo.InvariantCulture),
                            y      = diagramNodeDto.Y.ToString(CultureInfo.InvariantCulture)
                        },
                        Fill = new ShapeNodeFill
                        {
                            color       = diagramNodeDto.FillColorHexCode,
                            hasColor    = "true",
                            transparent = "false"
                        },
                        BorderStyle = new ShapeNodeBorderStyle
                        {
                            color = diagramNodeDto.BorderColorHexCode,
                            type  = "line",
                            width = "1.0"
                        },
                        Shape = new ShapeNodeShape
                        {
                            type = "roundrectangle"
                        },
                        NodeLabel = new ShapeNodeNodeLabel
                        {
                            alignment          = "center",
                            autoSizePolicy     = "content",
                            fontFamily         = "Dialog",
                            fontSize           = "12",
                            fontStyle          = "plain",
                            hasBackgroundColor = "false",
                            hasLineColor       = "false",
                            hasText            = "true",
                            height             = "4.0",
                            modelName          = "custom",
                            textColor          = "#000000",
                            visible            = "true",
                            width      = "4.0",
                            x          = "13.0",
                            y          = "13.0",
                            Text       = diagramNodeDto.Text,
                            LabelModel = new ShapeNodeNodeLabelLabelModel
                            {
                                SmartNodeLabelModel = new ShapeNodeNodeLabelLabelModelSmartNodeLabelModel
                                {
                                    distance = "4.0"
                                }
                            },
                            ModelParameter = new ShapeNodeNodeLabelModelParameter
                            {
                                SmartNodeLabelModelParameter =
                                    new ShapeNodeNodeLabelModelParameterSmartNodeLabelModelParameter
                                {
                                    labelRatioX = "0.0",
                                    labelRatioY = "0.0",
                                    nodeRatioX  = "0.0",
                                    nodeRatioY  = "0.0",
                                    offsetX     = "0.0",
                                    offsetY     = "0.0",
                                    upX         = "0.0",
                                    upY         = "-1.0"
                                }
                            }
                        }
                    }
                }
            };

            return(outputNode);
        }