Exemplo n.º 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);
        }
        public string FindSlackColorHexCode(int?totalSlack)
        {
            if (!totalSlack.HasValue)
            {
                return(DtoConverter.HexConverter(255, 0, 0, 0));
            }
            int totalSlackValue = totalSlack.GetValueOrDefault();

            foreach (ActivitySeverityDto activitySeverityDto in m_ActivitySeverityDtos)
            {
                if (totalSlackValue <= activitySeverityDto.SlackLimit)
                {
                    return(DtoConverter.HexConverter(activitySeverityDto.ColorFormat));
                }
            }
            return(DtoConverter.HexConverter(255, 0, 0, 0));
        }
Exemplo n.º 3
0
        private static DiagramEdgeDto BuildDiagramEdgeDto(EdgeControl edgeControl)
        {
            if (edgeControl == null)
            {
                throw new ArgumentNullException(nameof(edgeControl));
            }
            var outputEdge = new DiagramEdgeDto();
            var edge       = edgeControl.Edge as ArrowGraphEdge;

            if (edge != null)
            {
                outputEdge.Id       = Convert.ToInt32(edge.ID);
                outputEdge.Name     = edge.Name;
                outputEdge.SourceId = Convert.ToInt32(edge.Source.ID);
                outputEdge.TargetId = Convert.ToInt32(edge.Target.ID);
                Common.Project.EdgeDashStyle dashStyle = Common.Project.EdgeDashStyle.Normal;
                edge.DashStyle.ValueSwitchOn()
                .Case(GraphX.Controls.EdgeDashStyle.Solid, x => dashStyle = Common.Project.EdgeDashStyle.Normal)
                .Case(GraphX.Controls.EdgeDashStyle.Dash, x => dashStyle  = Common.Project.EdgeDashStyle.Dashed)
                .Default(x =>
                {
                    throw new InvalidEnumArgumentException("Unknown EdgeDashStyle value");
                });
                outputEdge.DashStyle = dashStyle;
                Color foregroundColor = ((SolidColorBrush)edgeControl.Foreground).Color;
                outputEdge.ForegroundColorHexCode =
                    DtoConverter.HexConverter(foregroundColor.R, foregroundColor.G, foregroundColor.B);
                outputEdge.StrokeThickness = edge.StrokeThickness;
                var labelText = new StringBuilder();
                if (edge.IsDummy)
                {
                    if (!edge.CanBeRemoved)
                    {
                        labelText.AppendFormat("{0}", edge.ID);
                        if (!edge.IsCritical)
                        {
                            labelText.AppendLine();
                            labelText.AppendFormat("{0}|{1}", edge.FreeSlack, edge.TotalSlack);
                        }
                        outputEdge.ShowLabel = true;
                    }
                    else
                    {
                        if (!edge.IsCritical)
                        {
                            labelText.AppendFormat("{0}|{1}", edge.FreeSlack, edge.TotalSlack);
                            outputEdge.ShowLabel = true;
                        }
                    }
                }
                else
                {
                    labelText.AppendFormat("{0} ({1})", edge.ID, edge.Duration);
                    if (!edge.IsCritical)
                    {
                        labelText.AppendLine();
                        labelText.AppendFormat("{0}|{1}", edge.FreeSlack, edge.TotalSlack);
                    }
                    outputEdge.ShowLabel = true;
                }
                outputEdge.Label = labelText.ToString();
            }
            return(outputEdge);
        }