internal void ClearAggregate(AggregateProjectEntry entry) { var aggregating = entry._aggregating.ToArray(); SortAggregates(aggregating); _aggregates.Remove(aggregating); }
private AggregateProjectEntry GetAggregateWorker(IProjectEntry[] all) { AggregateProjectEntry agg; if (!_aggregates.TryGetValue(all, out agg)) { _aggregates[all] = agg = new AggregateProjectEntry(new HashSet <IProjectEntry>(all)); foreach (var proj in all) { IAggregateableProjectEntry aggretable = proj as IAggregateableProjectEntry; if (aggretable != null) { aggretable.AggregatedInto(agg); } } } return(agg); }
public void AggregatedInto(AggregateProjectEntry into) { _aggregates.Add(into); }