/// <summary> /// Creates the name generator /// </summary> /// <param name="fallbackGenerator">Fallback name generator to be used when the set of projects is not a special case /// handled by this name generator.</param> /// <param name="analyzer">Solution analyzer to be used to find special cases.</param> public ReadableSlnNameGenerator(ISlnNameGenerator fallbackGenerator, ISuiteContentsAnalyzer analyzer) { Contract.Requires(fallbackGenerator != null); Contract.Requires(analyzer != null); this.fallbackGenerator = fallbackGenerator; this.analyzer = analyzer; }
/// <summary> /// Creates the builder /// </summary> /// <param name="projectGuidManagement">The project-guid mapper to use</param> /// <param name="projectPlatformManagement">Interface for getting default project configuration names</param> /// <param name="supportedSlnProjects">Supported project types</param> /// <param name="projects">The projects to be included to the solution</param> /// <param name="suiteRoot">Suite's root directory </param> /// <param name="targetDir">The target directory where the sln file should be put</param> /// <param name="slnNameGenerator">Name generator implementation for the sln file </param> /// <param name="inSolutionReferenceBuilderFactory">Interface to create new in-solution reference builder instances</param> /// <param name="solutionItemProviders">List of registered solution item providers</param> public SlnBuilder(IProjectGuidManagement projectGuidManagement, IProjectPlatformManagement projectPlatformManagement, IEnumerable <ISlnProject> supportedSlnProjects, IEnumerable <Project> projects, [SuiteRoot] IFileSystemDirectory suiteRoot, [TargetRoot] IFileSystemDirectory targetDir, ISlnNameGenerator slnNameGenerator, IInSolutionReferenceBuilderFactory inSolutionReferenceBuilderFactory, IEnumerable <ISolutionItemProvider> solutionItemProviders) { Contract.Requires(projectGuidManagement != null); Contract.Requires(projectPlatformManagement != null); Contract.Requires(supportedSlnProjects != null); Contract.Requires(projects != null); Contract.Requires(targetDir != null); Contract.Requires(suiteRoot != null); Contract.Requires(slnNameGenerator != null); Contract.Requires(inSolutionReferenceBuilderFactory != null); Contract.Requires(solutionItemProviders != null); this.projectGuidManagement = projectGuidManagement; this.supportedSlnProjects = supportedSlnProjects; this.suiteRoot = suiteRoot; this.projects = projects.ToList(); this.targetDir = targetDir; this.slnNameGenerator = slnNameGenerator; this.inSolutionReferenceBuilderFactory = inSolutionReferenceBuilderFactory; this.solutionItemProviders = solutionItemProviders; this.projectPlatformManagement = projectPlatformManagement; }