Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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}");
                }