public static IEnumerable <DocumentTypeDiffgram> OrderByDependencies(IEnumerable <DocumentTypeDiffgram> documentTypesValues) { var comparer = new DependencyComparer(); var list = documentTypesValues.ToList(); list.Sort(comparer); return(list); }
public void Ensure(Diffgram diffgram) { // Sort here to detect circular dependencies. Move to Safe check? var orderedDocTypes = DependencyComparer.OrderByDependencies(diffgram.DocumentTypes.Values); foreach (var datatypeDiff in diffgram.DataTypes.Values) { datatypeDiff.Ensure(); } foreach (var templateDiff in diffgram.Templates.Values) { templateDiff.Ensure(); } foreach (var doctypeDiff in orderedDocTypes) { doctypeDiff.Ensure(); } }