public void PintarArestasDeIdaEVolta()
        {
            var arestasDaOrigem = Arestas.Where(a => a.Antecessor.Identificador == "Sede").ToList();
            var corLaranja      = Cores.First(c => c.Nome == "Laranja");

            foreach (var aresta in arestasDaOrigem)
            {
                aresta.Cor = corLaranja.Hexadecimal;

                var arestaNova = new Aresta()
                {
                    Codigo     = Arestas.Last().Codigo + 1,
                    Custo      = aresta.Custo,
                    Antecessor = aresta.Sucessor,
                    Sucessor   = aresta.Antecessor,
                    Cor        = corLaranja.Hexadecimal
                };

                Arestas.Add(arestaNova);
            }
        }
        public void AdicionarAresta()
        {
            MensagemDeErro = string.Empty;

            if (Arestas.Any(a => (a.Antecessor.Identificador == Antecessor && a.Sucessor.Identificador == Sucessor) ||
                            (a.Sucessor.Identificador == Antecessor && a.Antecessor.Identificador == Sucessor)))
            {
                MensagemDeErro = "Os vertices selecionados já estão ligados entre si.";
                return;
            }
            else if (Antecessor == Sucessor)
            {
                MensagemDeErro = "Não é possível fazer essa ligação.";
                return;
            }

            Aresta.Antecessor = Vertices.First(v => v.Identificador == Antecessor);
            Aresta.Sucessor   = Vertices.First(v => v.Identificador == Sucessor);
            Aresta.Codigo     = Arestas.Any() ? Arestas.Last().Codigo++ : 0;
            Arestas.Add(Aresta);

            Aresta = new Aresta();
        }