Exemplo n.º 1
0
        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));
                }
            }
        }