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(); }