private static void BuildCoreProject(string solutionDirectory, string projectDirectory, string projectBaseName, IFileSystem fileSystem) { var solutionFolder = projectDirectory.Replace(solutionDirectory, "").Replace(Path.DirectorySeparatorChar.ToString(), ""); var coreProjectClassPath = ClassPathHelper.CoreProjectClassPath(projectDirectory, projectBaseName); CoreCsProjBuilder.CreateCoreCsProj(projectDirectory, projectBaseName); Utilities.ExecuteProcess("dotnet", $@"sln add ""{coreProjectClassPath.FullClassPath}"" --solution-folder {solutionFolder}", solutionDirectory); // dir won't show up in project until file is added Directory.CreateDirectory(ClassPathHelper.EntityClassPath(projectDirectory, "", projectBaseName).ClassDirectory); Directory.CreateDirectory(ClassPathHelper.DtoClassPath(projectDirectory, "", "", projectBaseName).ClassDirectory); Directory.CreateDirectory(ClassPathHelper.CoreExceptionClassPath(projectDirectory, "", projectBaseName).ClassDirectory); Directory.CreateDirectory(ClassPathHelper.WrappersClassPath(projectDirectory, "", projectBaseName).ClassDirectory); Directory.CreateDirectory(ClassPathHelper.SharedDtoClassPath(projectDirectory, "", projectBaseName).ClassDirectory); BasePaginationParametersBuilder.CreateBasePaginationParameters(projectDirectory, projectBaseName, fileSystem); PagedListBuilder.CreatePagedList(projectDirectory, projectBaseName, fileSystem); ResponseBuilder.CreateResponse(projectDirectory, projectBaseName, fileSystem); CoreExceptionsBuilder.CreateExceptions(projectDirectory, projectBaseName); }
private static void BuildWebApiProject(string solutionDirectory, string srcDirectory, string projectBaseName, bool useJwtAuth, string dbProvider, string dbName, IFileSystem fileSystem) { var solutionFolder = srcDirectory.GetSolutionFolder(solutionDirectory); var webApiProjectClassPath = ClassPathHelper.WebApiProjectClassPath(srcDirectory, projectBaseName); WebApiCsProjBuilder.CreateWebApiCsProj(srcDirectory, projectBaseName, dbProvider); Utilities.ExecuteProcess("dotnet", $@"sln add ""{webApiProjectClassPath.FullClassPath}"" --solution-folder {solutionFolder}", solutionDirectory); // base folders Directory.CreateDirectory(ClassPathHelper.ControllerClassPath(srcDirectory, "", projectBaseName, "v1").ClassDirectory); Directory.CreateDirectory(ClassPathHelper.WebApiServiceExtensionsClassPath(srcDirectory, "", projectBaseName).ClassDirectory); Directory.CreateDirectory(ClassPathHelper.WebApiMiddlewareClassPath(srcDirectory, "", projectBaseName).ClassDirectory); // additional from what was other projects Directory.CreateDirectory(ClassPathHelper.DtoClassPath(solutionDirectory, "", "", projectBaseName).ClassDirectory); Directory.CreateDirectory(ClassPathHelper.ExceptionsClassPath(srcDirectory, "").ClassDirectory); Directory.CreateDirectory(ClassPathHelper.WrappersClassPath(srcDirectory, "", projectBaseName).ClassDirectory); Directory.CreateDirectory(ClassPathHelper.SharedDtoClassPath(solutionDirectory, "").ClassDirectory); Directory.CreateDirectory(ClassPathHelper.DbContextClassPath(srcDirectory, "", projectBaseName).ClassDirectory); Directory.CreateDirectory(ClassPathHelper.DummySeederClassPath(srcDirectory, "", projectBaseName).ClassDirectory); WebApiServiceExtensionsBuilder.CreateApiVersioningServiceExtension(srcDirectory, projectBaseName, fileSystem); WebApiServiceExtensionsBuilder.CreateCorsServiceExtension(srcDirectory, projectBaseName, fileSystem); WebApiServiceExtensionsBuilder.CreateWebApiServiceExtension(srcDirectory, projectBaseName, fileSystem); ErrorHandlerFilterAttributeBuilder.CreateErrorHandlerFilterAttribute(srcDirectory, projectBaseName, fileSystem); AppSettingsBuilder.CreateWebApiAppSettings(srcDirectory, dbName, projectBaseName); WebApiLaunchSettingsBuilder.CreateLaunchSettings(srcDirectory, projectBaseName, fileSystem); ProgramBuilder.CreateWebApiProgram(srcDirectory, projectBaseName, fileSystem); StartupBuilder.CreateWebApiStartup(srcDirectory, useJwtAuth, projectBaseName, fileSystem); LocalConfigBuilder.CreateLocalConfig(srcDirectory, projectBaseName, fileSystem); LoggingConfigurationBuilder.CreateConfigFile(srcDirectory, projectBaseName, fileSystem); InfrastructureServiceRegistrationBuilder.CreateInfrastructureServiceExtension(srcDirectory, projectBaseName, fileSystem); BasePaginationParametersBuilder.CreateBasePaginationParameters(solutionDirectory, projectBaseName, fileSystem); PagedListBuilder.CreatePagedList(srcDirectory, projectBaseName, fileSystem); CoreExceptionsBuilder.CreateExceptions(solutionDirectory, projectBaseName, fileSystem); Utilities.AddProjectReference(webApiProjectClassPath, @"..\..\..\SharedKernel\SharedKernel.csproj"); }
private static void BuildApplicationProject(string solutionDirectory, IFileSystem fileSystem) { var applicationProjectClassPath = ClassPathHelper.ApplicationProjectClassPath(solutionDirectory); ApplicationCsProjBuilder.CreateApplicationCsProj(solutionDirectory); Utilities.ExecuteProcess("dotnet", $@"sln add ""{applicationProjectClassPath.FullClassPath}"" --solution-folder {"Core"}", solutionDirectory); // base folders Directory.CreateDirectory(ClassPathHelper.DtoClassPath(solutionDirectory, "", "").ClassDirectory); Directory.CreateDirectory(ClassPathHelper.ApplicationExceptionClassPath(solutionDirectory, "").ClassDirectory); Directory.CreateDirectory(ClassPathHelper.ApplicationInterfaceClassPath(solutionDirectory, "").ClassDirectory); Directory.CreateDirectory(ClassPathHelper.ProfileClassPath(solutionDirectory, "").ClassDirectory); Directory.CreateDirectory(ClassPathHelper.ValidationClassPath(solutionDirectory, "", "").ClassDirectory); Directory.CreateDirectory(ClassPathHelper.WrappersClassPath(solutionDirectory, "").ClassDirectory); Directory.CreateDirectory(ClassPathHelper.SharedDtoClassPath(solutionDirectory, "").ClassDirectory); ApplicationServiceExtensionsBuilder.CreateApplicationServiceExtension(solutionDirectory, fileSystem); BasePaginationParametersBuilder.CreateBasePaginationParameters(solutionDirectory, fileSystem); PagedListBuilder.CreatePagedList(solutionDirectory, fileSystem); ResponseBuilder.CreateResponse(solutionDirectory, fileSystem); ApplicationExceptionsBuilder.CreateExceptions(solutionDirectory); }