public static OutputPipelineStepCollection Create()
        {
            var steps = new OutputPipelineStepCollection
            {
                new SolutionStructureStep(),
                new ReferenceStep(new RelativePathGenerator()),
                new RelativeReferencePathStep(new RelativePathGenerator()),
                new AddFilesPiplineStep(new FileInclusionHierarchyBuilder(new WildcardMatcher()), new RelativePathGenerator()),
                new FileTypePiplineStep(new FileTypeHierarchyBuilder(new WildcardMatcher())),
                new MsBuildTemplateTranslatorStep(), 
                new ValidationStep(),
                new MsBuildFileGenerationStep(new OutputWriterResolver(), new FileSystem()),
                new SolutionGenerationStep(new FileSystem(), new RelativePathGenerator())
            };

            return steps;
        }
 public void UpdateSteps(OutputPipelineStepCollection steps)
 {
     var projectTypeNamingConvention = new ProjectTypeNamingConvention();
     steps.InsertBefore<SolutionStructureStep>(new ProjectInfoByConventionStep(projectTypeNamingConvention, new GuidGenerator()));
     steps.InsertAfter<MsBuildTemplateTranslatorStep>(new ProjectTemplateSelectorStep(projectTypeNamingConvention));
 }
 public void UpdateSteps(OutputPipelineStepCollection steps)
 {
     steps.InsertAfter<ReferenceStep>(this);
 }