private static void RunEntityBuilders(string srcDirectory, string testDirectory, AddEntityTemplate template, IFileSystem fileSystem, Verbosity verbosity) { //entities EntityScaffolding.ScaffoldEntities(srcDirectory, testDirectory, template.SolutionName, template.Entities, template.DbContextName, template.AddSwaggerComments, template.AuthorizationSettings.Policies, fileSystem, verbosity); //seeders & dbsets InfrastructureServiceRegistrationModifier.AddPolicies(srcDirectory, template.AuthorizationSettings.Policies, template.SolutionName); SeederModifier.AddSeeders(srcDirectory, template.Entities, template.DbContextName, template.SolutionName); DbContextModifier.AddDbSet(srcDirectory, template.Entities, template.DbContextName, template.SolutionName); ApiRouteModifier.AddRoutes(testDirectory, template.Entities, template.SolutionName); }
private static void RunEntityBuilders(string solutionDirectory, string srcDirectory, string testDirectory, AddEntityTemplate template, IFileSystem fileSystem) { var projectBaseName = template.SolutionName; var useSoftDelete = Utilities.ProjectUsesSoftDelete(srcDirectory, projectBaseName); //entities EntityScaffolding.ScaffoldEntities(solutionDirectory, srcDirectory, testDirectory, projectBaseName, template.Entities, template.DbContextName, template.AddSwaggerComments, useSoftDelete, fileSystem); SeederModifier.AddSeeders(srcDirectory, template.Entities, template.DbContextName, projectBaseName); DbContextModifier.AddDbSet(srcDirectory, template.Entities, template.DbContextName, projectBaseName); }
private static void RunEntityBuilders(string srcDirectory, string testDirectory, AddEntityTemplate template, IFileSystem fileSystem) { //entities EntityScaffolding.ScaffoldEntities(srcDirectory, testDirectory, template.SolutionName, template.Entities, template.DbContextName, template.AddSwaggerComments, fileSystem); //TODO move inside scaffoldentites? foreach (var feature in template.Entities.SelectMany(entity => entity.Features)) { InfrastructureServiceRegistrationModifier.AddPolicies(srcDirectory, feature.Policies, template.SolutionName); SwaggerServiceRegistrationModifier.AddPolicies(srcDirectory, feature.Policies, template.SolutionName); } SeederModifier.AddSeeders(srcDirectory, template.Entities, template.DbContextName, template.SolutionName); DbContextModifier.AddDbSet(srcDirectory, template.Entities, template.DbContextName, template.SolutionName); }
public static void Run(string solutionDirectory, IFileSystem fileSystem) { try { var srcDirectory = Path.Combine(solutionDirectory, "src"); var testDirectory = Path.Combine(solutionDirectory, "tests"); Utilities.IsBoundedContextDirectoryGuard(srcDirectory, testDirectory); var projectBaseName = Directory.GetParent(srcDirectory)?.Name; var contextName = Utilities.GetDbContext(srcDirectory, projectBaseName); var feature = RunPrompt(); // EmptyFeatureBuilder.CreateCommand(srcDirectory, contextName, projectBaseName, feature); var useSoftDelete = Utilities.ProjectUsesSoftDelete(srcDirectory, projectBaseName); EntityScaffolding.AddFeatureToProject( solutionDirectory, srcDirectory, testDirectory, projectBaseName, contextName, true, feature, new Entity() { Name = feature.EntityName, Plural = feature.EntityPlural }, useSoftDelete, fileSystem); WriteHelpHeader($"{Environment.NewLine}Your feature has been successfully added. Keep up the good work! {Emoji.Known.Sparkles}"); AnsiConsole.WriteLine(); } catch (Exception e) { if (e is SolutionNotFoundException or DataValidationErrorException) { WriteError($"{e.Message}"); }