Example #1
0
        public NewCommand(TemplateProjectBuilder templateProjectBuilder
                          , ITemplateInfoProvider templateInfoProvider,
                          EfCoreMigrationManager efCoreMigrationManager)
        {
            _efCoreMigrationManager = efCoreMigrationManager;
            TemplateProjectBuilder  = templateProjectBuilder;
            TemplateInfoProvider    = templateInfoProvider;

            Logger = NullLogger <NewCommand> .Instance;
        }
Example #2
0
    protected async Task ModifyDbContext(string[] projectFiles, ModuleInfo module, bool skipDbMigrations = false)
    {
        if (string.IsNullOrWhiteSpace(module.EfCoreConfigureMethodName))
        {
            if (!skipDbMigrations)
            {
                RunMigrator(projectFiles);
            }

            return;
        }

        var dbMigrationsProject = projectFiles.FirstOrDefault(p => p.EndsWith(".DbMigrations.csproj"))
                                  ?? projectFiles.FirstOrDefault(p => p.EndsWith(".EntityFrameworkCore.csproj"));

        if (dbMigrationsProject == null)
        {
            Logger.LogDebug("Solution doesn't have a Migrations project.");

            if (!skipDbMigrations)
            {
                RunMigrator(projectFiles);
            }

            return;
        }

        var dbContextFile = DerivedClassFinder.Find(dbMigrationsProject, "AbpDbContext").FirstOrDefault();

        if (dbContextFile == null)
        {
            Logger.LogDebug(
                $"{dbMigrationsProject} project doesn't have a class that is derived from \"AbpDbContext\".");
            return;
        }

        await PublishEventAsync(10, $"Adding Configuration to EfCore DbContext");

        var addedNewBuilder =
            DbContextFileBuilderConfigureAdder.Add(dbContextFile, module.EfCoreConfigureMethodName);

        if (!skipDbMigrations)
        {
            if (addedNewBuilder)
            {
                await PublishEventAsync(11, $"Creating a new migration");

                EfCoreMigrationManager.AddMigration(dbMigrationsProject, module.Name);
            }

            await PublishEventAsync(12, $"Running migrator");

            RunMigrator(projectFiles);
        }
    }
Example #3
0
 public SolutionModuleAdder(
     IJsonSerializer jsonSerializer,
     ProjectNugetPackageAdder projectNugetPackageAdder,
     DbContextFileBuilderConfigureAdder dbContextFileBuilderConfigureAdder,
     EfCoreMigrationManager efCoreMigrationManager,
     DerivedClassFinder derivedClassFinder,
     ProjectNpmPackageAdder projectNpmPackageAdder,
     NpmGlobalPackagesChecker npmGlobalPackagesChecker,
     IRemoteServiceExceptionHandler remoteServiceExceptionHandler,
     SourceCodeDownloadService sourceCodeDownloadService,
     SolutionFileModifier solutionFileModifier,
     NugetPackageToLocalReferenceConverter nugetPackageToLocalReferenceConverter,
     AngularSourceCodeAdder angularSourceCodeAdder,
     NewCommand newCommand,
     BundleCommand bundleCommand,
     CliHttpClientFactory cliHttpClientFactory,
     ICmdHelper cmdHelper,
     ILocalEventBus localEventBus)
 {
     JsonSerializer                        = jsonSerializer;
     ProjectNugetPackageAdder              = projectNugetPackageAdder;
     DbContextFileBuilderConfigureAdder    = dbContextFileBuilderConfigureAdder;
     EfCoreMigrationManager                = efCoreMigrationManager;
     DerivedClassFinder                    = derivedClassFinder;
     ProjectNpmPackageAdder                = projectNpmPackageAdder;
     NpmGlobalPackagesChecker              = npmGlobalPackagesChecker;
     RemoteServiceExceptionHandler         = remoteServiceExceptionHandler;
     SourceCodeDownloadService             = sourceCodeDownloadService;
     SolutionFileModifier                  = solutionFileModifier;
     NugetPackageToLocalReferenceConverter = nugetPackageToLocalReferenceConverter;
     AngularSourceCodeAdder                = angularSourceCodeAdder;
     NewCommand            = newCommand;
     BundleCommand         = bundleCommand;
     CmdHelper             = cmdHelper;
     LocalEventBus         = localEventBus;
     _cliHttpClientFactory = cliHttpClientFactory;
     Logger = NullLogger <SolutionModuleAdder> .Instance;
 }