public void WriteTgfFile(AbsoluteFilePath outputPath, Features features) { using (var writer = new StreamWriter(outputPath)) { var list = new List<Type>(features.AllFeatures); foreach (var type in list) { writer.WriteLine(list.IndexOf(type) + " " + type.Name); } writer.WriteLine("#"); foreach (var dependency in features.References) { writer.WriteLine( list.IndexOf(dependency.Feature) + " " + list.IndexOf(dependency.NeededFeature)); } } }
public void WriteTgfFile( AbsoluteFilePath outputPath, Features features, bool includeFactories, bool includeDependencies) { using (var writer = new StreamWriter(outputPath)) { var list = new List<FeatureInfo>(features.AllFeatures); foreach (var featureInfo in list) { var feature = $"{list.IndexOf(featureInfo)} {featureInfo.Feature.Name}"; if (includeFactories && featureInfo.Factory != null) { feature += $" Factory = {featureInfo.Factory?.Name}"; } if (includeDependencies && featureInfo.Dependencies.Any()) { feature += $" Dependencies = {string.Join(", ", featureInfo.Dependencies.Select(d => d.Name))}"; } writer.WriteLine(feature); } var index = list.Select(i => i.Feature).ToList(); writer.WriteLine("#"); foreach (var dependency in features.References) { writer.WriteLine( index.IndexOf(dependency.Feature) + " " + index.IndexOf(dependency.NeededFeature)); } } }