void ReplaceWithInSolutionReference(ISet<EquatableEdge<IBuilder>> graph, IEnumerable<ISlnProjectBuilder> childProjectBuilders, SuiteReferenceBuilder dep) { var inSolutionRef = inSolutionReferenceBuilderFactory.CreateInSolutionReferenceBuilder(dep.ReferencedProject); inSolutionRef.Reference = dep.Reference; foreach (var builder in childProjectBuilders) { builder.RemovePrerequisite(dep); var edgesToModify = new HashSet<EquatableEdge<IBuilder>>(graph.Where(edge => edge.Source == builder && edge.Target == dep)); RemoveEdges(graph, edgesToModify); foreach (var edge in edgesToModify) { var newEdge = new EquatableEdge<IBuilder>(edge.Source, inSolutionRef); AddEdge(graph, newEdge); } } }
void ReplaceWithInSolutionReference(ISet <EquatableEdge <IBuilder> > graph, IEnumerable <ISlnProjectBuilder> childProjectBuilders, SuiteReferenceBuilder dep) { var inSolutionRef = inSolutionReferenceBuilderFactory.CreateInSolutionReferenceBuilder(dep.ReferencedProject); inSolutionRef.Reference = dep.Reference; foreach (var builder in childProjectBuilders) { builder.RemovePrerequisite(dep); var edgesToModify = new HashSet <EquatableEdge <IBuilder> >(graph.Where(edge => edge.Source == builder && edge.Target == dep)); RemoveEdges(graph, edgesToModify); foreach (var edge in edgesToModify) { var newEdge = new EquatableEdge <IBuilder>(edge.Source, inSolutionRef); AddEdge(graph, newEdge); } } }