public static FileAbstraction CreatePackagesFile(List<NugetDependency> dependencies)
        {
            var packageIncludes =
                dependencies
                    .Select(d => CreatePackageInclude(d.Name, d.Version, targetFramework: "452")) //TODO: choose a version
                    .ToList();

            var fileContent =
                PackagesFileTemplate
                    .Replace("{{packages}}", string.Join(Environment.NewLine, packageIncludes));

            var solutionFile = new FileAbstraction()
            {
                Name = "packages.config",
                Content = fileContent
            };

            return solutionFile;
        }
        public static FileAbstraction CreatePackagesFile(List <NugetDependency> dependencies)
        {
            var packageIncludes =
                dependencies
                .Select(d => CreatePackageInclude(d.Name, d.Version, targetFramework: "452"))     //TODO: choose a version
                .ToList();

            var fileContent =
                PackagesFileTemplate
                .Replace("{{packages}}", string.Join(Environment.NewLine, packageIncludes));

            var solutionFile = new FileAbstraction()
            {
                Name    = "packages.config",
                Content = fileContent
            };

            return(solutionFile);
        }
        public static FileAbstraction CreateSolutionFile(SolutionConfiguration configuration)
        {
            var solutionName = "Ignited.NServiceBus" + configuration.NServiceBusVersion + "." + configuration.Transport.ToString();
            var solutionGuid = Guid.NewGuid();

            var projectIncludes =
                configuration.EndpointConfigurations
                .Select(e => CreateProjectInclude(solutionGuid, e.ProjectGuid, e.EndpointName))
                .ToList();

            var sharedProjectGuid  = Guid.NewGuid();
            var consoleProjectGuid = Guid.NewGuid();

            projectIncludes.Add(CreateProjectInclude(solutionGuid, sharedProjectGuid, TextPlaceholder.SharedProjectName));
            projectIncludes.Add(CreateProjectInclude(solutionGuid, consoleProjectGuid, TextPlaceholder.ConsoleProjectName));

            var projectConfigurations =
                configuration.EndpointConfigurations
                .Select(e => CreateProjectConfiguration(e.ProjectGuid))
                .ToList();

            projectConfigurations.Add(CreateProjectConfiguration(sharedProjectGuid));
            projectConfigurations.Add(CreateProjectConfiguration(consoleProjectGuid));

            var solutionFileContent =
                SolutionFileTemplate
                .Replace("{{projectIncludes}}", string.Join(Environment.NewLine, projectIncludes))
                //.Replace("{{instructionsIncludes}}", CreateInstructionsFolder(solutionGuid))
                .Replace("{{projectConfigurations}}", string.Join(Environment.NewLine, projectConfigurations));

            var solutionFile = new FileAbstraction()
            {
                Name    = solutionName + ".sln",
                Content = solutionFileContent
            };

            return(solutionFile);
        }
        public static FileAbstraction CreateSolutionFile(SolutionConfiguration configuration)
        {
            var solutionName = "Ignited.NServiceBus" + configuration.NServiceBusVersion + "." + configuration.Transport.ToString();
            var solutionGuid = Guid.NewGuid();

            var projectIncludes =
                configuration.EndpointConfigurations
                    .Select(e => CreateProjectInclude(solutionGuid, e.ProjectGuid, e.EndpointName))
                    .ToList();

            var sharedProjectGuid = Guid.NewGuid();
            var consoleProjectGuid = Guid.NewGuid();

            projectIncludes.Add(CreateProjectInclude(solutionGuid, sharedProjectGuid, TextPlaceholder.SharedProjectName));
            projectIncludes.Add(CreateProjectInclude(solutionGuid, consoleProjectGuid, TextPlaceholder.ConsoleProjectName));

            var projectConfigurations =
                configuration.EndpointConfigurations
                    .Select(e => CreateProjectConfiguration(e.ProjectGuid))
                    .ToList();

            projectConfigurations.Add(CreateProjectConfiguration(sharedProjectGuid));
            projectConfigurations.Add(CreateProjectConfiguration(consoleProjectGuid));

            var solutionFileContent =
                SolutionFileTemplate
                    .Replace("{{projectIncludes}}", string.Join(Environment.NewLine, projectIncludes))
                    //.Replace("{{instructionsIncludes}}", CreateInstructionsFolder(solutionGuid))
                    .Replace("{{projectConfigurations}}", string.Join(Environment.NewLine, projectConfigurations));

            var solutionFile = new FileAbstraction()
            {
                Name = solutionName + ".sln",
                Content = solutionFileContent
            };

            return solutionFile;
        }