void Process(List <VerticeEntity> ListVertices, VerticeEntity Vertice, Color Color) { if (Vertice != null) { Vertice.Color = Color; Vertice.VerticesRelated.ForEach(x => { x.ColorsUsed.Add(Color); }); ListVertices = ListVertices.FindAll(x => x.Color != null).Except(Vertice.VerticesRelated).ToList(); ListVertices.ForEach(x => { Process(ListVertices, x, Color); }); } }
private bool IsAvailable(VerticeEntity Subject, Color color) { return(Subject.ColorsUsed.Contains(color)); }